Path: blob/master/src/applications/people/controller/PhabricatorPeopleEmpowerController.php
12256 views
<?php12final class PhabricatorPeopleEmpowerController3extends PhabricatorPeopleController {45public function handleRequest(AphrontRequest $request) {6$viewer = $this->getViewer();7$id = $request->getURIData('id');89$user = id(new PhabricatorPeopleQuery())10->setViewer($viewer)11->withIDs(array($id))12->executeOne();13if (!$user) {14return new Aphront404Response();15}1617$done_uri = $this->getApplicationURI("manage/{$id}/");1819$validation_exception = null;20if ($request->isFormOrHisecPost()) {21$xactions = array();22$xactions[] = id(new PhabricatorUserTransaction())23->setTransactionType(24PhabricatorUserEmpowerTransaction::TRANSACTIONTYPE)25->setNewValue(!$user->getIsAdmin());2627$editor = id(new PhabricatorUserTransactionEditor())28->setActor($viewer)29->setContentSourceFromRequest($request)30->setContinueOnMissingFields(true)31->setCancelURI($done_uri);3233try {34$editor->applyTransactions($user, $xactions);35return id(new AphrontRedirectResponse())->setURI($done_uri);36} catch (PhabricatorApplicationTransactionValidationException $ex) {37$validation_exception = $ex;38}39}4041if ($user->getIsAdmin()) {42$title = pht('Remove as Administrator?');43$short = pht('Remove Administrator');44$body = pht(45'Remove %s as an administrator? They will no longer be able to '.46'perform administrative functions on this server.',47phutil_tag('strong', array(), $user->getUsername()));48$submit = pht('Remove Administrator');49} else {50$title = pht('Make Administrator?');51$short = pht('Make Administrator');52$body = pht(53'Empower %s as an administrator? They will be able to create users, '.54'approve users, make and remove administrators, delete accounts, and '.55'perform other administrative functions on this server.',56phutil_tag('strong', array(), $user->getUsername()));57$submit = pht('Make Administrator');58}5960return $this->newDialog()61->setValidationException($validation_exception)62->setTitle($title)63->setShortTitle($short)64->appendParagraph($body)65->addCancelButton($done_uri)66->addSubmitButton($submit);67}6869}707172