Path: blob/master/src/applications/auth/controller/contact/PhabricatorAuthContactNumberDisableController.php
12262 views
<?php12final class PhabricatorAuthContactNumberDisableController3extends 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$is_disable = ($request->getURIData('action') == 'disable');23$id = $number->getID();24$cancel_uri = $number->getURI();2526if ($request->isFormOrHisecPost()) {27$xactions = array();2829if ($is_disable) {30$new_status = PhabricatorAuthContactNumber::STATUS_DISABLED;31} else {32$new_status = PhabricatorAuthContactNumber::STATUS_ACTIVE;33}3435$xactions[] = id(new PhabricatorAuthContactNumberTransaction())36->setTransactionType(37PhabricatorAuthContactNumberStatusTransaction::TRANSACTIONTYPE)38->setNewValue($new_status);3940$editor = id(new PhabricatorAuthContactNumberEditor())41->setActor($viewer)42->setContentSourceFromRequest($request)43->setContinueOnNoEffect(true)44->setContinueOnMissingFields(true)45->setCancelURI($cancel_uri);4647try {48$editor->applyTransactions($number, $xactions);49} catch (PhabricatorApplicationTransactionValidationException $ex) {50// This happens when you enable a number which collides with another51// number.52return $this->newDialog()53->setTitle(pht('Changing Status Failed'))54->setValidationException($ex)55->addCancelButton($cancel_uri);56}5758return id(new AphrontRedirectResponse())->setURI($cancel_uri);59}6061$number_display = phutil_tag(62'strong',63array(),64$number->getDisplayName());6566if ($is_disable) {67$title = pht('Disable Contact Number');68$body = pht(69'Disable the contact number %s?',70$number_display);71$button = pht('Disable Number');72} else {73$title = pht('Enable Contact Number');74$body = pht(75'Enable the contact number %s?',76$number_display);77$button = pht('Enable Number');78}7980return $this->newDialog()81->setTitle($title)82->appendParagraph($body)83->addSubmitButton($button)84->addCancelButton($cancel_uri);85}8687}888990