Path: blob/master/src/applications/paste/controller/PhabricatorPasteArchiveController.php
12242 views
<?php12final class PhabricatorPasteArchiveController3extends PhabricatorPasteController {45public function handleRequest(AphrontRequest $request) {6$viewer = $request->getViewer();7$id = $request->getURIData('id');89$paste = id(new PhabricatorPasteQuery())10->setViewer($viewer)11->withIDs(array($id))12->requireCapabilities(13array(14PhabricatorPolicyCapability::CAN_VIEW,15PhabricatorPolicyCapability::CAN_EDIT,16))17->executeOne();18if (!$paste) {19return new Aphront404Response();20}2122$view_uri = $paste->getURI();2324if ($request->isFormPost()) {25if ($paste->isArchived()) {26$new_status = PhabricatorPaste::STATUS_ACTIVE;27} else {28$new_status = PhabricatorPaste::STATUS_ARCHIVED;29}3031$xactions = array();3233$xactions[] = id(new PhabricatorPasteTransaction())34->setTransactionType(PhabricatorPasteStatusTransaction::TRANSACTIONTYPE)35->setNewValue($new_status);3637id(new PhabricatorPasteEditor())38->setActor($viewer)39->setContentSourceFromRequest($request)40->setContinueOnNoEffect(true)41->setContinueOnMissingFields(true)42->applyTransactions($paste, $xactions);4344return id(new AphrontRedirectResponse())->setURI($view_uri);45}4647if ($paste->isArchived()) {48$title = pht('Activate Paste');49$body = pht('This paste will become consumable again.');50$button = pht('Activate Paste');51} else {52$title = pht('Archive Paste');53$body = pht('This paste will be marked as expired.');54$button = pht('Archive Paste');55}5657return $this->newDialog()58->setTitle($title)59->appendChild($body)60->addCancelButton($view_uri)61->addSubmitButton($button);62}6364}656667