Path: blob/master/src/applications/auth/controller/contact/PhabricatorAuthContactNumberPrimaryController.php
12262 views
<?php12final class PhabricatorAuthContactNumberPrimaryController3extends PhabricatorAuthContactNumberController {45public function handleRequest(AphrontRequest $request) {6$viewer = $request->getViewer();7$id = $request->getURIData('id');89$number = id(new PhabricatorAuthContactNumberQuery())10->setViewer($viewer)11->withIDs(array($id))12->requireCapabilities(13array(14PhabricatorPolicyCapability::CAN_VIEW,15PhabricatorPolicyCapability::CAN_EDIT,16))17->executeOne();18if (!$number) {19return new Aphront404Response();20}2122$id = $number->getID();23$cancel_uri = $number->getURI();2425if ($number->isDisabled()) {26return $this->newDialog()27->setTitle(pht('Number Disabled'))28->appendParagraph(29pht(30'You can not make a disabled number your primary contact number.'))31->addCancelButton($cancel_uri);32}3334if ($number->getIsPrimary()) {35return $this->newDialog()36->setTitle(pht('Number Already Primary'))37->appendParagraph(38pht(39'This contact number is already your primary contact number.'))40->addCancelButton($cancel_uri);41}4243if ($request->isFormOrHisecPost()) {44$xactions = array();4546$xactions[] = id(new PhabricatorAuthContactNumberTransaction())47->setTransactionType(48PhabricatorAuthContactNumberPrimaryTransaction::TRANSACTIONTYPE)49->setNewValue(true);5051$editor = id(new PhabricatorAuthContactNumberEditor())52->setActor($viewer)53->setContentSourceFromRequest($request)54->setContinueOnNoEffect(true)55->setContinueOnMissingFields(true)56->setCancelURI($cancel_uri);5758try {59$editor->applyTransactions($number, $xactions);60} catch (PhabricatorApplicationTransactionValidationException $ex) {61// This happens when you try to make a number into your primary62// number, but you have contact number MFA on your account.63return $this->newDialog()64->setTitle(pht('Unable to Make Primary'))65->setValidationException($ex)66->addCancelButton($cancel_uri);67}6869return id(new AphrontRedirectResponse())->setURI($cancel_uri);70}7172$number_display = phutil_tag(73'strong',74array(),75$number->getDisplayName());7677return $this->newDialog()78->setTitle(pht('Set Primary Contact Number'))79->appendParagraph(80pht(81'Designate %s as your primary contact number?',82$number_display))83->addSubmitButton(pht('Make Primary'))84->addCancelButton($cancel_uri);85}8687}888990