Differential D13414 Diff 32487 src/applications/diffusion/controller/DiffusionRepositoryCreateController.php
Changeset View
Changeset View
Standalone View
Standalone View
src/applications/diffusion/controller/DiffusionRepositoryCreateController.php
Show First 20 Lines • Show All 131 Lines • ▼ Show 20 Lines | if ($request->isFormPost()) { | ||||
$type_local_path = PhabricatorRepositoryTransaction::TYPE_LOCAL_PATH; | $type_local_path = PhabricatorRepositoryTransaction::TYPE_LOCAL_PATH; | ||||
$type_remote_uri = PhabricatorRepositoryTransaction::TYPE_REMOTE_URI; | $type_remote_uri = PhabricatorRepositoryTransaction::TYPE_REMOTE_URI; | ||||
$type_hosting = PhabricatorRepositoryTransaction::TYPE_HOSTING; | $type_hosting = PhabricatorRepositoryTransaction::TYPE_HOSTING; | ||||
$type_http = PhabricatorRepositoryTransaction::TYPE_PROTOCOL_HTTP; | $type_http = PhabricatorRepositoryTransaction::TYPE_PROTOCOL_HTTP; | ||||
$type_ssh = PhabricatorRepositoryTransaction::TYPE_PROTOCOL_SSH; | $type_ssh = PhabricatorRepositoryTransaction::TYPE_PROTOCOL_SSH; | ||||
$type_credential = PhabricatorRepositoryTransaction::TYPE_CREDENTIAL; | $type_credential = PhabricatorRepositoryTransaction::TYPE_CREDENTIAL; | ||||
$type_view = PhabricatorTransactions::TYPE_VIEW_POLICY; | $type_view = PhabricatorTransactions::TYPE_VIEW_POLICY; | ||||
$type_edit = PhabricatorTransactions::TYPE_EDIT_POLICY; | $type_edit = PhabricatorTransactions::TYPE_EDIT_POLICY; | ||||
$type_space = PhabricatorTransactions::TYPE_SPACE; | |||||
$type_push = PhabricatorRepositoryTransaction::TYPE_PUSH_POLICY; | $type_push = PhabricatorRepositoryTransaction::TYPE_PUSH_POLICY; | ||||
$type_service = PhabricatorRepositoryTransaction::TYPE_SERVICE; | $type_service = PhabricatorRepositoryTransaction::TYPE_SERVICE; | ||||
$xactions = array(); | $xactions = array(); | ||||
// If we're creating a new repository, set all this core stuff. | // If we're creating a new repository, set all this core stuff. | ||||
if ($is_create) { | if ($is_create) { | ||||
$callsign = $form->getPage('name') | $callsign = $form->getPage('name') | ||||
▲ Show 20 Lines • Show All 72 Lines • ▼ Show 20 Lines | if ($request->isFormPost()) { | ||||
$xactions[] = id(clone $template) | $xactions[] = id(clone $template) | ||||
->setTransactionType($type_credential) | ->setTransactionType($type_credential) | ||||
->setNewValue( | ->setNewValue( | ||||
$form->getPage('auth')->getControl('credential')->getValue()); | $form->getPage('auth')->getControl('credential')->getValue()); | ||||
} | } | ||||
if ($is_policy) { | if ($is_policy) { | ||||
$policy_page = $form->getPage('policy'); | |||||
$xactions[] = id(clone $template) | $xactions[] = id(clone $template) | ||||
->setTransactionType($type_view) | ->setTransactionType($type_view) | ||||
->setNewValue( | ->setNewValue($policy_page->getControl('viewPolicy')->getValue()); | ||||
$form->getPage('policy')->getControl('viewPolicy')->getValue()); | |||||
$xactions[] = id(clone $template) | $xactions[] = id(clone $template) | ||||
->setTransactionType($type_edit) | ->setTransactionType($type_edit) | ||||
->setNewValue( | ->setNewValue($policy_page->getControl('editPolicy')->getValue()); | ||||
$form->getPage('policy')->getControl('editPolicy')->getValue()); | |||||
if ($is_init || $repository->isHosted()) { | if ($is_init || $repository->isHosted()) { | ||||
$xactions[] = id(clone $template) | $xactions[] = id(clone $template) | ||||
->setTransactionType($type_push) | ->setTransactionType($type_push) | ||||
->setNewValue( | ->setNewValue($policy_page->getControl('pushPolicy')->getValue()); | ||||
$form->getPage('policy')->getControl('pushPolicy')->getValue()); | |||||
} | } | ||||
$xactions[] = id(clone $template) | |||||
->setTransactionType($type_space) | |||||
->setNewValue( | |||||
$policy_page->getControl('viewPolicy')->getSpacePHID()); | |||||
} | } | ||||
id(new PhabricatorRepositoryEditor()) | id(new PhabricatorRepositoryEditor()) | ||||
->setContinueOnNoEffect(true) | ->setContinueOnNoEffect(true) | ||||
->setContentSourceFromRequest($request) | ->setContentSourceFromRequest($request) | ||||
->setActor($viewer) | ->setActor($viewer) | ||||
->applyTransactions($repository, $xactions); | ->applyTransactions($repository, $xactions); | ||||
$repo_uri = $this->getRepositoryControllerURI($repository, 'edit/'); | $repo_uri = $this->getRepositoryControllerURI($repository, 'edit/'); | ||||
return id(new AphrontRedirectResponse())->setURI($repo_uri); | return id(new AphrontRedirectResponse())->setURI($repo_uri); | ||||
} | } | ||||
} else { | } else { | ||||
$dict = array(); | $dict = array(); | ||||
if ($repository) { | if ($repository) { | ||||
$dict = array( | $dict = array( | ||||
'remoteURI' => $repository->getRemoteURI(), | 'remoteURI' => $repository->getRemoteURI(), | ||||
'credential' => $repository->getCredentialPHID(), | 'credential' => $repository->getCredentialPHID(), | ||||
'viewPolicy' => $repository->getViewPolicy(), | 'viewPolicy' => $repository->getViewPolicy(), | ||||
'editPolicy' => $repository->getEditPolicy(), | 'editPolicy' => $repository->getEditPolicy(), | ||||
'pushPolicy' => $repository->getPushPolicy(), | 'pushPolicy' => $repository->getPushPolicy(), | ||||
'spacePHID' => $repository->getSpacePHID(), | |||||
); | ); | ||||
} | } | ||||
$form->readFromObject($dict); | $form->readFromObject($dict); | ||||
} | } | ||||
$crumbs = $this->buildApplicationCrumbs(); | $crumbs = $this->buildApplicationCrumbs(); | ||||
$crumbs->addTextCrumb($title); | $crumbs->addTextCrumb($title); | ||||
▲ Show 20 Lines • Show All 452 Lines • ▼ Show 20 Lines | private function buildPolicyPage() { | ||||
$push_policy = id(new AphrontFormPolicyControl()) | $push_policy = id(new AphrontFormPolicyControl()) | ||||
->setUser($viewer) | ->setUser($viewer) | ||||
->setCapability(DiffusionPushCapability::CAPABILITY) | ->setCapability(DiffusionPushCapability::CAPABILITY) | ||||
->setPolicyObject($repository) | ->setPolicyObject($repository) | ||||
->setPolicies($policies) | ->setPolicies($policies) | ||||
->setName('pushPolicy'); | ->setName('pushPolicy'); | ||||
return id(new PHUIFormPageView()) | return id(new PHUIFormPageView()) | ||||
->setPageName(pht('Policies')) | ->setPageName(pht('Policies')) | ||||
->setValidateFormPageCallback(array($this, 'validatePolicyPage')) | ->setValidateFormPageCallback(array($this, 'validatePolicyPage')) | ||||
->setAdjustFormPageCallback(array($this, 'adjustPolicyPage')) | ->setAdjustFormPageCallback(array($this, 'adjustPolicyPage')) | ||||
->setUser($viewer) | ->setUser($viewer) | ||||
->addRemarkupInstructions( | ->addRemarkupInstructions( | ||||
pht('Select access policies for this repository.')) | pht('Select access policies for this repository.')) | ||||
->addControl($view_policy) | ->addControl($view_policy) | ||||
->addControl($edit_policy) | ->addControl($edit_policy) | ||||
->addControl($push_policy); | ->addControl($push_policy); | ||||
} | } | ||||
public function adjustPolicyPage(PHUIFormPageView $page) { | public function adjustPolicyPage(PHUIFormPageView $page) { | ||||
if ($this->getRepository()) { | if ($this->getRepository()) { | ||||
$repository = $this->getRepository(); | $repository = $this->getRepository(); | ||||
$show_push = $repository->isHosted(); | $show_push = $repository->isHosted(); | ||||
} else { | } else { | ||||
$show_push = ($this->edit == 'create'); | $show_push = ($this->edit == 'create'); | ||||
▲ Show 20 Lines • Show All 155 Lines • Show Last 20 Lines |