Page MenuHomePhabricator

D17151.id41248.diff
No OneTemporary

D17151.id41248.diff

diff --git a/src/applications/diffusion/view/DiffusionCloneURIView.php b/src/applications/diffusion/view/DiffusionCloneURIView.php
--- a/src/applications/diffusion/view/DiffusionCloneURIView.php
+++ b/src/applications/diffusion/view/DiffusionCloneURIView.php
@@ -35,6 +35,8 @@
}
public function render() {
+ $viewer = $this->getViewer();
+
require_celerity_resource('diffusion-icons-css');
Javelin::initBehavior('select-content');
@@ -87,12 +89,18 @@
case PhabricatorRepositoryURI::IO_READWRITE:
switch ($uri->getBuiltinProtocol()) {
case PhabricatorRepositoryURI::BUILTIN_PROTOCOL_SSH:
- $auth_uri = '/settings/panel/ssh/';
+ $auth_uri = id(new PhabricatorSSHKeysSettingsPanel())
+ ->setViewer($viewer)
+ ->setUser($viewer)
+ ->getPanelURI();
$auth_tip = pht('Manage SSH Keys');
$auth_disabled = false;
break;
default:
- $auth_uri = '/settings/panel/vcspassword';
+ $auth_uri = id(new DiffusionSetPasswordSettingsPanel())
+ ->setViewer($viewer)
+ ->setUser($viewer)
+ ->getPanelURI();
$auth_tip = pht('Manage Password');
$auth_disabled = false;
break;
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
@@ -32,7 +32,7 @@
// 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.
+ // generation of viewer-agnostic URIs for email and logged-out users.
$panel = $request->getURIData('panel');
if ($panel) {
$panel = phutil_escape_uri($panel);
diff --git a/src/applications/settings/panel/PhabricatorSettingsPanel.php b/src/applications/settings/panel/PhabricatorSettingsPanel.php
--- a/src/applications/settings/panel/PhabricatorSettingsPanel.php
+++ b/src/applications/settings/panel/PhabricatorSettingsPanel.php
@@ -229,8 +229,15 @@
$user = $this->getUser();
if ($user) {
- $username = $user->getUsername();
- return "/settings/user/{$username}/page/{$key}/{$path}";
+ if ($user->isLoggedIn()) {
+ $username = $user->getUsername();
+ return "/settings/user/{$username}/page/{$key}/{$path}";
+ } else {
+ // For logged-out users, we can't put their username in the URI. This
+ // page will prompt them to login, then redirect them to the correct
+ // location.
+ return "/settings/panel/{$key}/";
+ }
} else {
$builtin = $this->getPreferences()->getBuiltinKey();
return "/settings/builtin/{$builtin}/page/{$key}/{$path}";

File Metadata

Mime Type
text/plain
Expires
Mon, May 20, 9:44 PM (3 w, 6 d ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
6286858
Default Alt Text
D17151.id41248.diff (2 KB)

Event Timeline