1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2025-02-08 04:48:28 +01:00
phorge-phorge/src/applications/harbormaster/controller/HarbormasterPlanDisableController.php
Joshua Spence c34de83619 Rename policy capabilities
Summary: Ref T5655. Rename `PhabricatorPolicyCapability` subclasses for consistency.

Test Plan: Browsed a few applications, nothing seemed broken.

Reviewers: #blessed_reviewers, epriestley

Reviewed By: #blessed_reviewers, epriestley

Subscribers: epriestley, Korvin, hach-que

Maniphest Tasks: T5655

Differential Revision: https://secure.phabricator.com/D10037
2014-07-25 08:20:39 +10:00

76 lines
2 KiB
PHP

<?php
final class HarbormasterPlanDisableController
extends HarbormasterPlanController {
private $id;
public function willProcessRequest(array $data) {
$this->id = $data['id'];
}
public function processRequest() {
$request = $this->getRequest();
$viewer = $request->getUser();
$this->requireApplicationCapability(
HarbormasterManagePlansCapability::CAPABILITY);
$plan = id(new HarbormasterBuildPlanQuery())
->setViewer($viewer)
->withIDs(array($this->id))
->executeOne();
if (!$plan) {
return new Aphront404Response();
}
$plan_uri = $this->getApplicationURI('plan/'.$plan->getID().'/');
if ($request->isFormPost()) {
$type_status = HarbormasterBuildPlanTransaction::TYPE_STATUS;
$v_status = $plan->isDisabled()
? HarbormasterBuildPlan::STATUS_ACTIVE
: HarbormasterBuildPlan::STATUS_DISABLED;
$xactions = array();
$xactions[] = id(new HarbormasterBuildPlanTransaction())
->setTransactionType($type_status)
->setNewValue($v_status);
$editor = id(new HarbormasterBuildPlanEditor())
->setActor($viewer)
->setContinueOnNoEffect(true)
->setContinueOnMissingFields(true)
->setContentSourceFromRequest($request);
$editor->applyTransactions($plan, $xactions);
return id(new AphrontRedirectResponse())->setURI($plan_uri);
}
if ($plan->isDisabled()) {
$title = pht('Enable Build Plan');
$body = pht('Enable this build plan?');
$button = pht('Enable Plan');
} else {
$title = pht('Disable Build Plan');
$body = pht(
'Disable this build plan? It will no longer be executed '.
'automatically.');
$button = pht('Disable Plan');
}
$dialog = id(new AphrontDialogView())
->setUser($viewer)
->setTitle($title)
->appendChild($body)
->addSubmitButton($button)
->addCancelButton($plan_uri);
return id(new AphrontDialogResponse())->setDialog($dialog);
}
}