Path: blob/master/src/applications/files/controller/PhabricatorFileDeleteController.php
12242 views
<?php12final class PhabricatorFileDeleteController extends PhabricatorFileController {34public function handleRequest(AphrontRequest $request) {5$viewer = $request->getViewer();6$id = $request->getURIData('id');78$file = id(new PhabricatorFileQuery())9->setViewer($viewer)10->withIDs(array($id))11->withIsDeleted(false)12->requireCapabilities(13array(14PhabricatorPolicyCapability::CAN_VIEW,15PhabricatorPolicyCapability::CAN_EDIT,16))17->executeOne();18if (!$file) {19return new Aphront404Response();20}2122if (($viewer->getPHID() != $file->getAuthorPHID()) &&23(!$viewer->getIsAdmin())) {24return new Aphront403Response();25}2627if ($request->isFormPost()) {28$xactions = array();2930$xactions[] = id(new PhabricatorFileTransaction())31->setTransactionType(PhabricatorFileDeleteTransaction::TRANSACTIONTYPE)32->setNewValue(true);3334id(new PhabricatorFileEditor())35->setActor($viewer)36->setContentSourceFromRequest($request)37->setContinueOnNoEffect(true)38->setContinueOnMissingFields(true)39->applyTransactions($file, $xactions);4041return id(new AphrontRedirectResponse())->setURI('/file/');42}4344return $this->newDialog()45->setTitle(pht('Really delete file?'))46->appendChild(hsprintf(47'<p>%s</p>',48pht(49'Permanently delete "%s"? This action can not be undone.',50$file->getName())))51->addSubmitButton(pht('Delete'))52->addCancelButton($file->getInfoURI());53}54}555657