Changeset View
Changeset View
Standalone View
Standalone View
src/applications/spaces/storage/PhabricatorSpacesNamespace.php
- This file was added.
| <?php | |||||
| final class PhabricatorSpacesNamespace | |||||
| extends PhabricatorSpacesDAO | |||||
| implements | |||||
| PhabricatorPolicyInterface, | |||||
| PhabricatorApplicationTransactionInterface { | |||||
| protected $namespaceName; | |||||
| protected $viewPolicy; | |||||
| protected $editPolicy; | |||||
| protected $isDefaultNamespace; | |||||
| public static function initializeNewNamespace(PhabricatorUser $actor) { | |||||
| $app = id(new PhabricatorApplicationQuery()) | |||||
| ->setViewer($actor) | |||||
| ->withClasses(array('PhabricatorApplicationSpaces')) | |||||
| ->executeOne(); | |||||
| $view_policy = $app->getPolicy( | |||||
| PhabricatorSpacesCapabilityDefaultView::CAPABILITY); | |||||
| $edit_policy = $app->getPolicy( | |||||
| PhabricatorSpacesCapabilityDefaultEdit::CAPABILITY); | |||||
| return id(new PhabricatorSpacesNamespace()) | |||||
| ->setIsDefaultNamespace(null) | |||||
| ->setViewPolicy($view_policy) | |||||
| ->setEditPolicy($edit_policy); | |||||
| } | |||||
| public function getConfiguration() { | |||||
| return array( | |||||
| self::CONFIG_AUX_PHID => true, | |||||
| self::CONFIG_COLUMN_SCHEMA => array( | |||||
| 'namespaceName' => 'text255', | |||||
| 'isDefaultNamespace' => 'bool?', | |||||
| ), | |||||
| self::CONFIG_KEY_SCHEMA => array( | |||||
| 'key_default' => array( | |||||
| 'columns' => array('isDefaultNamespace'), | |||||
| 'unique' => true, | |||||
| ), | |||||
| ), | |||||
| ) + parent::getConfiguration(); | |||||
| } | |||||
| public function generatePHID() { | |||||
| return PhabricatorPHID::generateNewPHID( | |||||
| PhabricatorSpacesNamespacePHIDType::TYPECONST); | |||||
| } | |||||
| public function getMonogram() { | |||||
| return 'S'.$this->getID(); | |||||
| } | |||||
| /* -( PhabricatorPolicyInterface )----------------------------------------- */ | |||||
| public function getCapabilities() { | |||||
| return array( | |||||
| PhabricatorPolicyCapability::CAN_VIEW, | |||||
| PhabricatorPolicyCapability::CAN_EDIT, | |||||
| ); | |||||
| } | |||||
| public function getPolicy($capability) { | |||||
| switch ($capability) { | |||||
| case PhabricatorPolicyCapability::CAN_VIEW: | |||||
| return $this->getViewPolicy(); | |||||
| case PhabricatorPolicyCapability::CAN_EDIT: | |||||
| return $this->getEditPolicy(); | |||||
| } | |||||
| } | |||||
| public function hasAutomaticCapability($capability, PhabricatorUser $viewer) { | |||||
| return false; | |||||
| } | |||||
| public function describeAutomaticCapability($capability) { | |||||
| return null; | |||||
| } | |||||
| /* -( PhabricatorApplicationTransactionInterface )------------------------- */ | |||||
| public function getApplicationTransactionEditor() { | |||||
| return new PhabricatorSpacesNamespaceEditor(); | |||||
| } | |||||
| public function getApplicationTransactionObject() { | |||||
| return $this; | |||||
| } | |||||
| public function getApplicationTransactionTemplate() { | |||||
| return new PhabricatorSpacesNamespaceTransaction(); | |||||
| } | |||||
| public function willRenderTimeline( | |||||
| PhabricatorApplicationTransactionView $timeline, | |||||
| AphrontRequest $request) { | |||||
| return $timeline; | |||||
| } | |||||
| } | |||||