Page MenuHomePhabricator

D20510.diff
No OneTemporary

D20510.diff

diff --git a/src/__phutil_library_map__.php b/src/__phutil_library_map__.php
--- a/src/__phutil_library_map__.php
+++ b/src/__phutil_library_map__.php
@@ -3040,6 +3040,7 @@
'PhabricatorDatasourceEditType' => 'applications/transactions/edittype/PhabricatorDatasourceEditType.php',
'PhabricatorDatasourceEngine' => 'applications/search/engine/PhabricatorDatasourceEngine.php',
'PhabricatorDatasourceEngineExtension' => 'applications/search/engineextension/PhabricatorDatasourceEngineExtension.php',
+ 'PhabricatorDatasourceURIEngineExtension' => 'applications/meta/engineextension/PhabricatorDatasourceURIEngineExtension.php',
'PhabricatorDateFormatSetting' => 'applications/settings/setting/PhabricatorDateFormatSetting.php',
'PhabricatorDateTimeSettingsPanel' => 'applications/settings/panel/PhabricatorDateTimeSettingsPanel.php',
'PhabricatorDebugController' => 'applications/system/controller/PhabricatorDebugController.php',
@@ -9082,6 +9083,7 @@
'PhabricatorDatasourceEditType' => 'PhabricatorPHIDListEditType',
'PhabricatorDatasourceEngine' => 'Phobject',
'PhabricatorDatasourceEngineExtension' => 'Phobject',
+ 'PhabricatorDatasourceURIEngineExtension' => 'PhabricatorDatasourceEngineExtension',
'PhabricatorDateFormatSetting' => 'PhabricatorSelectSetting',
'PhabricatorDateTimeSettingsPanel' => 'PhabricatorEditEngineSettingsPanel',
'PhabricatorDebugController' => 'PhabricatorController',
diff --git a/src/applications/meta/engineextension/PhabricatorDatasourceURIEngineExtension.php b/src/applications/meta/engineextension/PhabricatorDatasourceURIEngineExtension.php
new file mode 100644
--- /dev/null
+++ b/src/applications/meta/engineextension/PhabricatorDatasourceURIEngineExtension.php
@@ -0,0 +1,34 @@
+<?php
+
+final class PhabricatorDatasourceURIEngineExtension
+ extends PhabricatorDatasourceEngineExtension {
+
+ public function newQuickSearchDatasources() {
+ return array();
+ }
+
+ public function newJumpURI($query) {
+ // If you search for a URI on the local install, just redirect to that
+ // URI as though you had pasted it into the URI bar.
+ if (PhabricatorEnv::isSelfURI($query)) {
+ // Strip off the absolute part of the URI. If we don't, the URI redirect
+ // validator will get upset that we're performing an unmarked external
+ // redirect.
+
+ // The correct host and protocol may also differ from the host and
+ // protocol used in the search: for example, if you search for "http://"
+ // we want to redirect to "https://" if an install is HTTPS, and
+ // the "isSelfURI()" check includes alternate domains in addition to the
+ // canonical domain.
+
+ $uri = id(new PhutilURI($query))
+ ->setDomain(null)
+ ->setProtocol(null)
+ ->setPort(null);
+
+ return phutil_string_cast($uri);
+ }
+
+ return null;
+ }
+}

File Metadata

Mime Type
text/plain
Expires
Sat, Mar 15, 11:31 AM (1 w, 12 h ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
7636000
Default Alt Text
D20510.diff (2 KB)

Event Timeline