Page MenuHomePhabricator

D18912.diff
No OneTemporary

D18912.diff

diff --git a/scripts/ssh/ssh-exec.php b/scripts/ssh/ssh-exec.php
--- a/scripts/ssh/ssh-exec.php
+++ b/scripts/ssh/ssh-exec.php
@@ -245,7 +245,7 @@
}
$workflow = $parsed_args->parseWorkflows($workflows);
- $workflow->setUser($user);
+ $workflow->setSSHUser($user);
$workflow->setOriginalArguments($original_argv);
$workflow->setIsClusterRequest($is_cluster_request);
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
@@ -9620,7 +9620,7 @@
'PhabricatorSSHKeysSettingsPanel' => 'PhabricatorSettingsPanel',
'PhabricatorSSHLog' => 'Phobject',
'PhabricatorSSHPassthruCommand' => 'Phobject',
- 'PhabricatorSSHWorkflow' => 'PhabricatorManagementWorkflow',
+ 'PhabricatorSSHWorkflow' => 'PhutilArgumentWorkflow',
'PhabricatorSavedQuery' => array(
'PhabricatorSearchDAO',
'PhabricatorPolicyInterface',
diff --git a/src/applications/conduit/ssh/ConduitSSHWorkflow.php b/src/applications/conduit/ssh/ConduitSSHWorkflow.php
--- a/src/applications/conduit/ssh/ConduitSSHWorkflow.php
+++ b/src/applications/conduit/ssh/ConduitSSHWorkflow.php
@@ -46,7 +46,7 @@
try {
$call = new ConduitCall($method, $params);
- $call->setUser($this->getUser());
+ $call->setUser($this->getSSHUser());
$result = $call->execute();
} catch (ConduitException $ex) {
@@ -77,7 +77,7 @@
$connection_id = idx($metadata, 'connectionID');
$log = id(new PhabricatorConduitMethodCallLog())
- ->setCallerPHID($this->getUser()->getPHID())
+ ->setCallerPHID($this->getSSHUser()->getPHID())
->setConnectionID($connection_id)
->setMethod($method)
->setError((string)$error_code)
diff --git a/src/applications/diffusion/ssh/DiffusionGitReceivePackSSHWorkflow.php b/src/applications/diffusion/ssh/DiffusionGitReceivePackSSHWorkflow.php
--- a/src/applications/diffusion/ssh/DiffusionGitReceivePackSSHWorkflow.php
+++ b/src/applications/diffusion/ssh/DiffusionGitReceivePackSSHWorkflow.php
@@ -15,7 +15,7 @@
protected function executeRepositoryOperations() {
$repository = $this->getRepository();
- $viewer = $this->getUser();
+ $viewer = $this->getSSHUser();
$device = AlmanacKeys::getLiveDevice();
// This is a write, and must have write access.
diff --git a/src/applications/diffusion/ssh/DiffusionGitUploadPackSSHWorkflow.php b/src/applications/diffusion/ssh/DiffusionGitUploadPackSSHWorkflow.php
--- a/src/applications/diffusion/ssh/DiffusionGitUploadPackSSHWorkflow.php
+++ b/src/applications/diffusion/ssh/DiffusionGitUploadPackSSHWorkflow.php
@@ -15,7 +15,7 @@
protected function executeRepositoryOperations() {
$repository = $this->getRepository();
- $viewer = $this->getUser();
+ $viewer = $this->getSSHUser();
$device = AlmanacKeys::getLiveDevice();
$skip_sync = $this->shouldSkipReadSynchronization();
diff --git a/src/applications/diffusion/ssh/DiffusionSSHWorkflow.php b/src/applications/diffusion/ssh/DiffusionSSHWorkflow.php
--- a/src/applications/diffusion/ssh/DiffusionSSHWorkflow.php
+++ b/src/applications/diffusion/ssh/DiffusionSSHWorkflow.php
@@ -26,7 +26,7 @@
public function getEnvironment() {
$env = array(
- DiffusionCommitHookEngine::ENV_USER => $this->getUser()->getUsername(),
+ DiffusionCommitHookEngine::ENV_USER => $this->getSSHUser()->getUsername(),
DiffusionCommitHookEngine::ENV_REMOTE_PROTOCOL => 'ssh',
);
@@ -122,14 +122,14 @@
$key_path,
$port,
$host,
- '@'.$this->getUser()->getUsername(),
+ '@'.$this->getSSHUser()->getUsername(),
$this->getOriginalArguments());
}
final public function execute(PhutilArgumentParser $args) {
$this->args = $args;
- $viewer = $this->getUser();
+ $viewer = $this->getSSHUser();
$have_diffusion = PhabricatorApplication::isClassInstalledForViewer(
'PhabricatorDiffusionApplication',
$viewer);
@@ -164,7 +164,7 @@
}
protected function loadRepositoryWithPath($path, $vcs) {
- $viewer = $this->getUser();
+ $viewer = $this->getSSHUser();
$info = PhabricatorRepository::parseRepositoryServicePath($path, $vcs);
if ($info === null) {
@@ -214,7 +214,7 @@
}
$repository = $this->getRepository();
- $viewer = $this->getUser();
+ $viewer = $this->getSSHUser();
if ($viewer->isOmnipotent()) {
throw new Exception(
@@ -252,7 +252,7 @@
}
protected function shouldSkipReadSynchronization() {
- $viewer = $this->getUser();
+ $viewer = $this->getSSHUser();
// Currently, the only case where devices interact over SSH without
// assuming user credentials is when synchronizing before a read. These
@@ -265,7 +265,7 @@
}
protected function newPullEvent() {
- $viewer = $this->getViewer();
+ $viewer = $this->getSSHUser();
$repository = $this->getRepository();
$remote_address = $this->getSSHRemoteAddress();
diff --git a/src/applications/diffusion/ssh/DiffusionSubversionServeSSHWorkflow.php b/src/applications/diffusion/ssh/DiffusionSubversionServeSSHWorkflow.php
--- a/src/applications/diffusion/ssh/DiffusionSubversionServeSSHWorkflow.php
+++ b/src/applications/diffusion/ssh/DiffusionSubversionServeSSHWorkflow.php
@@ -154,7 +154,7 @@
} else {
$command = csprintf(
'svnserve -t --tunnel-user=%s',
- $this->getUser()->getUsername());
+ $this->getSSHUser()->getUsername());
$cwd = PhabricatorEnv::getEmptyCWD();
}
diff --git a/src/infrastructure/ssh/PhabricatorSSHWorkflow.php b/src/infrastructure/ssh/PhabricatorSSHWorkflow.php
--- a/src/infrastructure/ssh/PhabricatorSSHWorkflow.php
+++ b/src/infrastructure/ssh/PhabricatorSSHWorkflow.php
@@ -1,8 +1,14 @@
<?php
-abstract class PhabricatorSSHWorkflow extends PhabricatorManagementWorkflow {
+abstract class PhabricatorSSHWorkflow
+ extends PhutilArgumentWorkflow {
- private $user;
+ // NOTE: We are explicitly extending "PhutilArgumentWorkflow", not
+ // "PhabricatorManagementWorkflow". We want to avoid inheriting "getViewer()"
+ // and other methods which assume workflows are administrative commands
+ // like `bin/storage`.
+
+ private $sshUser;
private $iochannel;
private $errorChannel;
private $isClusterRequest;
@@ -21,13 +27,13 @@
return $this->errorChannel;
}
- public function setUser(PhabricatorUser $user) {
- $this->user = $user;
+ public function setSSHUser(PhabricatorUser $ssh_user) {
+ $this->sshUser = $ssh_user;
return $this;
}
- public function getUser() {
- return $this->user;
+ public function getSSHUser() {
+ return $this->sshUser;
}
public function setIOChannel(PhutilChannel $channel) {

File Metadata

Mime Type
text/plain
Expires
Tue, Oct 15, 8:59 AM (1 w, 3 d ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
6712154
Default Alt Text
D18912.diff (6 KB)

Event Timeline