Differential D20733 Diff 49440 src/applications/phortune/controller/merchant/PhortuneMerchantAddManagerController.php
Changeset View
Changeset View
Standalone View
Standalone View
src/applications/phortune/controller/merchant/PhortuneMerchantAddManagerController.php
<?php | <?php | ||||
final class PhortuneMerchantAddManagerController extends PhortuneController { | final class PhortuneMerchantAddManagerController | ||||
extends PhortuneMerchantController { | |||||
public function handleRequest(AphrontRequest $request) { | protected function shouldRequireMerchantEditCapability() { | ||||
$viewer = $request->getViewer(); | return true; | ||||
$id = $request->getURIData('id'); | |||||
$merchant = id(new PhortuneMerchantQuery()) | |||||
->setViewer($viewer) | |||||
->withIDs(array($id)) | |||||
->needProfileImage(true) | |||||
->requireCapabilities( | |||||
array( | |||||
PhabricatorPolicyCapability::CAN_VIEW, | |||||
PhabricatorPolicyCapability::CAN_EDIT, | |||||
)) | |||||
->executeOne(); | |||||
if (!$merchant) { | |||||
return new Aphront404Response(); | |||||
} | } | ||||
protected function handleMerchantRequest(AphrontRequest $request) { | |||||
$viewer = $request->getViewer(); | |||||
$merchant = $this->getMerchant(); | |||||
$v_members = array(); | $v_members = array(); | ||||
$e_members = null; | $e_members = null; | ||||
$merchant_uri = $this->getApplicationURI("/merchant/manager/{$id}/"); | $merchant_uri = $merchant->getManagersURI(); | ||||
if ($request->isFormPost()) { | if ($request->isFormOrHiSecPost()) { | ||||
$xactions = array(); | $xactions = array(); | ||||
$v_members = $request->getArr('memberPHIDs'); | $v_members = $request->getArr('managerPHIDs'); | ||||
$type_edge = PhabricatorTransactions::TYPE_EDGE; | $type_edge = PhabricatorTransactions::TYPE_EDGE; | ||||
$xactions[] = id(new PhortuneMerchantTransaction()) | $xactions[] = id(new PhortuneMerchantTransaction()) | ||||
->setTransactionType($type_edge) | ->setTransactionType($type_edge) | ||||
->setMetadataValue( | ->setMetadataValue( | ||||
'edge:type', | 'edge:type', | ||||
PhortuneMerchantHasMemberEdgeType::EDGECONST) | PhortuneMerchantHasMemberEdgeType::EDGECONST) | ||||
->setNewValue( | ->setNewValue( | ||||
Show All 16 Lines | if ($request->isFormOrHiSecPost()) { | ||||
} | } | ||||
} | } | ||||
$form = id(new AphrontFormView()) | $form = id(new AphrontFormView()) | ||||
->setUser($viewer) | ->setUser($viewer) | ||||
->appendControl( | ->appendControl( | ||||
id(new AphrontFormTokenizerControl()) | id(new AphrontFormTokenizerControl()) | ||||
->setDatasource(new PhabricatorPeopleDatasource()) | ->setDatasource(new PhabricatorPeopleDatasource()) | ||||
->setLabel(pht('Members')) | ->setLabel(pht('New Managers')) | ||||
->setName('memberPHIDs') | ->setName('managerPHIDs') | ||||
->setValue($v_members) | ->setValue($v_members) | ||||
->setError($e_members)); | ->setError($e_members)); | ||||
return $this->newDialog() | return $this->newDialog() | ||||
->setTitle(pht('Add New Manager')) | ->setTitle(pht('Add New Managers')) | ||||
->appendForm($form) | ->appendForm($form) | ||||
->setWidth(AphrontDialogView::WIDTH_FORM) | ->setWidth(AphrontDialogView::WIDTH_FORM) | ||||
->addCancelButton($merchant_uri) | ->addCancelButton($merchant_uri) | ||||
->addSubmitButton(pht('Add Manager')); | ->addSubmitButton(pht('Add Manager')); | ||||
} | } | ||||
} | } |