Path: blob/master/src/applications/badges/storage/PhabricatorBadgesAward.php
12256 views
<?php12final class PhabricatorBadgesAward extends PhabricatorBadgesDAO3implements4PhabricatorDestructibleInterface,5PhabricatorPolicyInterface {67protected $badgePHID;8protected $recipientPHID;9protected $awarderPHID;1011private $badge = self::ATTACHABLE;1213public static function initializeNewBadgesAward(14PhabricatorUser $actor,15PhabricatorBadgesBadge $badge,16$recipient_phid) {17return id(new self())18->setRecipientPHID($recipient_phid)19->setBadgePHID($badge->getPHID())20->setAwarderPHID($actor->getPHID())21->attachBadge($badge);22}2324protected function getConfiguration() {25return array(26self::CONFIG_KEY_SCHEMA => array(27'key_badge' => array(28'columns' => array('badgePHID', 'recipientPHID'),29'unique' => true,30),31'key_recipient' => array(32'columns' => array('recipientPHID'),33),34),35) + parent::getConfiguration();36}3738public function attachBadge(PhabricatorBadgesBadge $badge) {39$this->badge = $badge;40return $this;41}4243public function getBadge() {44return $this->assertAttached($this->badge);45}464748/* -( PhabricatorDestructibleInterface )----------------------------------- */495051public function destroyObjectPermanently(52PhabricatorDestructionEngine $engine) {5354$this->openTransaction();55$this->delete();56$this->saveTransaction();57}585960/* -( PhabricatorPolicyInterface )----------------------------------------- */616263public function getCapabilities() {64return array(65PhabricatorPolicyCapability::CAN_VIEW,66PhabricatorPolicyCapability::CAN_EDIT,67);68}6970public function getPolicy($capability) {71return $this->getBadge()->getPolicy($capability);72}7374public function hasAutomaticCapability($capability, PhabricatorUser $viewer) {75return false;76}7778}798081