Page MenuHomec4science

DrydockAuthorizationAuthorizeController.php
No OneTemporary

File Metadata

Created
Sun, Jul 7, 13:16

DrydockAuthorizationAuthorizeController.php

<?php
final class DrydockAuthorizationAuthorizeController
extends DrydockController {
public function handleRequest(AphrontRequest $request) {
$viewer = $request->getViewer();
$id = $request->getURIData('id');
$authorization = id(new DrydockAuthorizationQuery())
->setViewer($viewer)
->withIDs(array($id))
->requireCapabilities(
array(
PhabricatorPolicyCapability::CAN_VIEW,
PhabricatorPolicyCapability::CAN_EDIT,
))
->executeOne();
if (!$authorization) {
return new Aphront404Response();
}
$authorization_uri = $this->getApplicationURI("authorization/{$id}/");
$is_authorize = ($request->getURIData('action') == 'authorize');
$state_authorized = DrydockAuthorization::BLUEPRINTAUTH_AUTHORIZED;
$state_declined = DrydockAuthorization::BLUEPRINTAUTH_DECLINED;
$state = $authorization->getBlueprintAuthorizationState();
$can_authorize = ($state != $state_authorized);
$can_decline = ($state != $state_declined);
if ($is_authorize && !$can_authorize) {
return $this->newDialog()
->setTitle(pht('Already Authorized'))
->appendParagraph(
pht(
'This authorization has already been approved.'))
->addCancelButton($authorization_uri);
}
if (!$is_authorize && !$can_decline) {
return $this->newDialog()
->setTitle(pht('Already Declined'))
->appendParagraph(
pht('This authorization has already been declined.'))
->addCancelButton($authorization_uri);
}
if ($request->isFormPost()) {
if ($is_authorize) {
$new_state = $state_authorized;
} else {
$new_state = $state_declined;
}
$authorization
->setBlueprintAuthorizationState($new_state)
->save();
return id(new AphrontRedirectResponse())->setURI($authorization_uri);
}
if ($is_authorize) {
$title = pht('Approve Authorization');
$body = pht(
'Approve this authorization? The object will be able to lease and '.
'allocate resources created by this blueprint.');
$button = pht('Approve Authorization');
} else {
$title = pht('Decline Authorization');
$body = pht(
'Decline this authorization? The object will not be able to lease '.
'or allocate resources created by this blueprint.');
$button = pht('Decline Authorization');
}
return $this->newDialog()
->setTitle($title)
->appendParagraph($body)
->addSubmitButton($button)
->addCancelButton($authorization_uri);
}
}

Event Timeline