Page MenuHomePhabricator

D16049.id38619.diff
No OneTemporary

D16049.id38619.diff

diff --git a/src/applications/settings/application/PhabricatorSettingsApplication.php b/src/applications/settings/application/PhabricatorSettingsApplication.php
--- a/src/applications/settings/application/PhabricatorSettingsApplication.php
+++ b/src/applications/settings/application/PhabricatorSettingsApplication.php
@@ -36,6 +36,8 @@
=> 'PhabricatorSettingsMainController',
'builtin/(?P<builtin>global)/'.$panel_pattern
=> 'PhabricatorSettingsMainController',
+ 'panel/(?P<panel>[^/]+)/'
+ => 'PhabricatorSettingsMainController',
'adjust/' => 'PhabricatorSettingsAdjustController',
'timezone/(?P<offset>[^/]+)/'
=> 'PhabricatorSettingsTimezoneController',
diff --git a/src/applications/settings/controller/PhabricatorSettingsMainController.php b/src/applications/settings/controller/PhabricatorSettingsMainController.php
--- a/src/applications/settings/controller/PhabricatorSettingsMainController.php
+++ b/src/applications/settings/controller/PhabricatorSettingsMainController.php
@@ -30,6 +30,19 @@
public function handleRequest(AphrontRequest $request) {
$viewer = $this->getViewer();
+ // Redirect "/panel/XYZ/" to the viewer's personal settings panel. This
+ // was the primary URI before global settings were introduced and allows
+ // generation of viewer-agnostic URIs for email.
+ $panel = $request->getURIData('panel');
+ if ($panel) {
+ $panel = phutil_escape_uri($panel);
+ $username = $viewer->getUsername();
+
+ $panel_uri = "/user/{$username}/page/{$panel}/";
+ $panel_uri = $this->getApplicationURI($panel_uri);
+ return id(new AphrontRedirectResponse())->setURI($panel_uri);
+ }
+
$username = $request->getURIData('username');
$builtin = $request->getURIData('builtin');

File Metadata

Mime Type
text/plain
Expires
Sun, Mar 16, 9:00 PM (3 w, 14 h ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
7220278
Default Alt Text
D16049.id38619.diff (1 KB)

Event Timeline