Path: blob/master/src/applications/flag/storage/PhabricatorFlag.php
12256 views
<?php12final class PhabricatorFlag extends PhabricatorFlagDAO3implements PhabricatorPolicyInterface {45protected $ownerPHID;6protected $type;7protected $objectPHID;8protected $reasonPHID;9protected $color = PhabricatorFlagColor::COLOR_BLUE;10protected $note;1112private $handle = self::ATTACHABLE;13private $object = self::ATTACHABLE;1415protected function getConfiguration() {16return array(17self::CONFIG_COLUMN_SCHEMA => array(18'type' => 'text4',19'color' => 'uint32',20'note' => 'text',21),22self::CONFIG_KEY_SCHEMA => array(23'ownerPHID' => array(24'columns' => array('ownerPHID', 'type', 'objectPHID'),25'unique' => true,26),27'objectPHID' => array(28'columns' => array('objectPHID'),29),30),31) + parent::getConfiguration();32}3334public function getObject() {35return $this->assertAttached($this->object);36}3738public function attachObject($object) {39$this->object = $object;40return $this;41}4243public function getHandle() {44return $this->assertAttached($this->handle);45}4647public function attachHandle(PhabricatorObjectHandle $handle) {48$this->handle = $handle;49return $this;50}515253/* -( PhabricatorPolicyInterface )----------------------------------------- */545556public function getCapabilities() {57return array(58PhabricatorPolicyCapability::CAN_VIEW,59PhabricatorPolicyCapability::CAN_EDIT,60);61}6263public function getPolicy($capability) {64return PhabricatorPolicies::POLICY_NOONE;65}6667public function hasAutomaticCapability($capability, PhabricatorUser $viewer) {68return ($viewer->getPHID() == $this->getOwnerPHID());69}7071public function describeAutomaticCapability($capability) {72return pht('Flags are private. Only you can view or edit your flags.');73}7475}767778