Changeset View
Changeset View
Standalone View
Standalone View
src/applications/files/storage/PhabricatorFileAttachment.php
<?php | <?php | ||||
final class PhabricatorFileAttachment | final class PhabricatorFileAttachment | ||||
extends PhabricatorFileDAO { | extends PhabricatorFileDAO | ||||
implements | |||||
PhabricatorPolicyInterface, | |||||
PhabricatorExtendedPolicyInterface { | |||||
protected $objectPHID; | protected $objectPHID; | ||||
protected $filePHID; | protected $filePHID; | ||||
protected $attacherPHID; | protected $attacherPHID; | ||||
protected $attachmentMode; | protected $attachmentMode; | ||||
private $object = self::ATTACHABLE; | |||||
private $file = self::ATTACHABLE; | |||||
const MODE_ATTACH = 'attach'; | const MODE_ATTACH = 'attach'; | ||||
const MODE_REFERENCE = 'reference'; | const MODE_REFERENCE = 'reference'; | ||||
const MODE_DETACH = 'detach'; | const MODE_DETACH = 'detach'; | ||||
protected function getConfiguration() { | protected function getConfiguration() { | ||||
return array( | return array( | ||||
self::CONFIG_COLUMN_SCHEMA => array( | self::CONFIG_COLUMN_SCHEMA => array( | ||||
'objectPHID' => 'phid', | 'objectPHID' => 'phid', | ||||
Show All 16 Lines | final class PhabricatorFileAttachment | ||||
public static function getModeList() { | public static function getModeList() { | ||||
return array( | return array( | ||||
self::MODE_ATTACH, | self::MODE_ATTACH, | ||||
self::MODE_REFERENCE, | self::MODE_REFERENCE, | ||||
self::MODE_DETACH, | self::MODE_DETACH, | ||||
); | ); | ||||
} | } | ||||
public function attachObject($object) { | |||||
$this->object = $object; | |||||
return $this; | |||||
} | |||||
public function getObject() { | |||||
return $this->assertAttached($this->object); | |||||
} | |||||
public function attachFile(PhabricatorFile $file = null) { | |||||
$this->file = $file; | |||||
return $this; | |||||
} | |||||
public function getFile() { | |||||
return $this->assertAttached($this->file); | |||||
} | |||||
/* -( PhabricatorPolicyInterface )----------------------------------------- */ | |||||
public function getCapabilities() { | |||||
return array( | |||||
PhabricatorPolicyCapability::CAN_VIEW, | |||||
); | |||||
} | |||||
public function getPolicy($capability) { | |||||
switch ($capability) { | |||||
case PhabricatorPolicyCapability::CAN_VIEW: | |||||
return PhabricatorPolicies::getMostOpenPolicy(); | |||||
} | |||||
} | |||||
public function hasAutomaticCapability($capability, PhabricatorUser $viewer) { | |||||
return false; | |||||
} | |||||
/* -( PhabricatorExtendedPolicyInterface )--------------------------------- */ | |||||
public function getExtendedPolicy($capability, PhabricatorUser $viewer) { | |||||
return array( | |||||
array($this->getObject(), $capability), | |||||
); | |||||
} | |||||
} | } |