Path: blob/master/src/applications/badges/controller/PhabricatorBadgesRemoveRecipientsController.php
12262 views
<?php12final class PhabricatorBadgesRemoveRecipientsController3extends PhabricatorBadgesController {45public function handleRequest(AphrontRequest $request) {6$viewer = $request->getViewer();7$id = $request->getURIData('id');89$badge = id(new PhabricatorBadgesQuery())10->setViewer($viewer)11->withIDs(array($id))12->requireCapabilities(13array(14PhabricatorPolicyCapability::CAN_VIEW,15PhabricatorPolicyCapability::CAN_EDIT,16))17->executeOne();18if (!$badge) {19return new Aphront404Response();20}2122$remove_phid = $request->getStr('phid');23$view_uri = $this->getApplicationURI('recipients/'.$badge->getID().'/');2425if ($request->isFormPost()) {26$xactions = array();27$xactions[] = id(new PhabricatorBadgesTransaction())28->setTransactionType(29PhabricatorBadgesBadgeRevokeTransaction::TRANSACTIONTYPE)30->setNewValue(array($remove_phid));3132$editor = id(new PhabricatorBadgesEditor())33->setActor($viewer)34->setContentSourceFromRequest($request)35->setContinueOnNoEffect(true)36->setContinueOnMissingFields(true)37->applyTransactions($badge, $xactions);3839return id(new AphrontRedirectResponse())40->setURI($view_uri);41}4243$handle = id(new PhabricatorHandleQuery())44->setViewer($viewer)45->withPHIDs(array($remove_phid))46->executeOne();4748$dialog = id(new AphrontDialogView())49->setUser($viewer)50->setTitle(pht('Really Revoke Badge?'))51->appendParagraph(52pht(53'Really revoke the badge "%s" from %s?',54phutil_tag('strong', array(), $badge->getName()),55phutil_tag('strong', array(), $handle->getName())))56->addCancelButton($view_uri)57->addSubmitButton(pht('Revoke Badge'));5859return $dialog;60}6162}636465