[ Index ] |
PHP Cross Reference of Phabricator |
[Summary view] [Print] [Text view]
1 <?php 2 3 final class NuanceSource extends NuanceDAO 4 implements PhabricatorPolicyInterface { 5 6 protected $name; 7 protected $type; 8 protected $data; 9 protected $mailKey; 10 protected $viewPolicy; 11 protected $editPolicy; 12 13 public function getConfiguration() { 14 return array( 15 self::CONFIG_AUX_PHID => true, 16 self::CONFIG_SERIALIZATION => array( 17 'data' => self::SERIALIZATION_JSON, 18 ), 19 self::CONFIG_COLUMN_SCHEMA => array( 20 'name' => 'text255?', 21 'type' => 'text32', 22 'mailKey' => 'bytes20', 23 ), 24 self::CONFIG_KEY_SCHEMA => array( 25 'key_type' => array( 26 'columns' => array('type', 'dateModified'), 27 ), 28 ), 29 ) + parent::getConfiguration(); 30 } 31 32 public function generatePHID() { 33 return PhabricatorPHID::generateNewPHID(NuanceSourcePHIDType::TYPECONST); 34 } 35 36 public function save() { 37 if (!$this->getMailKey()) { 38 $this->setMailKey(Filesystem::readRandomCharacters(20)); 39 } 40 return parent::save(); 41 } 42 43 public function getURI() { 44 return '/nuance/source/view/'.$this->getID().'/'; 45 } 46 47 public static function initializeNewSource(PhabricatorUser $actor) { 48 $app = id(new PhabricatorApplicationQuery()) 49 ->setViewer($actor) 50 ->withClasses(array('PhabricatorNuanceApplication')) 51 ->executeOne(); 52 53 $view_policy = $app->getPolicy( 54 NuanceSourceDefaultViewCapability::CAPABILITY); 55 $edit_policy = $app->getPolicy( 56 NuanceSourceDefaultEditCapability::CAPABILITY); 57 58 $definitions = NuanceSourceDefinition::getAllDefinitions(); 59 $lucky_definition = head($definitions); 60 61 return id(new NuanceSource()) 62 ->setViewPolicy($view_policy) 63 ->setEditPolicy($edit_policy) 64 ->setType($lucky_definition->getSourceTypeConstant()); 65 } 66 67 public function getCapabilities() { 68 return array( 69 PhabricatorPolicyCapability::CAN_VIEW, 70 PhabricatorPolicyCapability::CAN_EDIT, 71 ); 72 } 73 74 public function getPolicy($capability) { 75 switch ($capability) { 76 case PhabricatorPolicyCapability::CAN_VIEW: 77 return $this->getViewPolicy(); 78 case PhabricatorPolicyCapability::CAN_EDIT: 79 return $this->getEditPolicy(); 80 } 81 } 82 83 public function hasAutomaticCapability($capability, PhabricatorUser $viewer) { 84 return false; 85 } 86 87 public function describeAutomaticCapability($capability) { 88 return null; 89 } 90 91 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Sun Nov 30 09:20:46 2014 | Cross-referenced by PHPXref 0.7.1 |