[ Index ]

PHP Cross Reference of Phabricator

title

Body

[close]

/src/applications/drydock/controller/ -> DrydockLeaseReleaseController.php (source)

   1  <?php
   2  
   3  final class DrydockLeaseReleaseController extends DrydockLeaseController {
   4  
   5    private $id;
   6  
   7    public function willProcessRequest(array $data) {
   8      $this->id = $data['id'];
   9    }
  10  
  11    public function processRequest() {
  12      $request = $this->getRequest();
  13      $user = $request->getUser();
  14  
  15      $lease = id(new DrydockLeaseQuery())
  16        ->setViewer($user)
  17        ->withIDs(array($this->id))
  18        ->executeOne();
  19      if (!$lease) {
  20        return new Aphront404Response();
  21      }
  22  
  23      $lease_uri = '/lease/'.$lease->getID().'/';
  24      $lease_uri = $this->getApplicationURI($lease_uri);
  25  
  26      if ($lease->getStatus() != DrydockLeaseStatus::STATUS_ACTIVE) {
  27        $dialog = id(new AphrontDialogView())
  28          ->setUser($user)
  29          ->setTitle(pht('Lease Not Active'))
  30          ->appendChild(phutil_tag('p', array(), pht(
  31            'You can only release "active" leases.')))
  32          ->addCancelButton($lease_uri);
  33  
  34        return id(new AphrontDialogResponse())->setDialog($dialog);
  35      }
  36  
  37      if (!$request->isDialogFormPost()) {
  38        $dialog = id(new AphrontDialogView())
  39          ->setUser($user)
  40          ->setTitle(pht('Really release lease?'))
  41          ->appendChild(phutil_tag('p', array(), pht(
  42            'Releasing a lease may cause trouble for the lease holder and '.
  43            'trigger cleanup of the underlying resource. It can not be '.
  44            'undone. Continue?')))
  45          ->addSubmitButton(pht('Release Lease'))
  46          ->addCancelButton($lease_uri);
  47  
  48        return id(new AphrontDialogResponse())->setDialog($dialog);
  49      }
  50  
  51      $resource = $lease->getResource();
  52      $blueprint = $resource->getBlueprint();
  53      $blueprint->releaseLease($resource, $lease);
  54  
  55      return id(new AphrontReloadResponse())->setURI($lease_uri);
  56    }
  57  
  58  }


Generated: Sun Nov 30 09:20:46 2014 Cross-referenced by PHPXref 0.7.1