Changeset View
Changeset View
Standalone View
Standalone View
src/applications/auth/storage/PhabricatorAuthMessage.php
- This file was added.
| <?php | |||||
| final class PhabricatorAuthMessage | |||||
| extends PhabricatorAuthDAO | |||||
| implements | |||||
| PhabricatorApplicationTransactionInterface, | |||||
| PhabricatorPolicyInterface, | |||||
| PhabricatorDestructibleInterface { | |||||
| protected $messageKey; | |||||
| protected $messageText; | |||||
| private $messageType = self::ATTACHABLE; | |||||
| public static function initializeNewMessage( | |||||
| PhabricatorAuthMessageType $type) { | |||||
| return id(new self()) | |||||
| ->setMessageKey($type->getMessageTypeKey()) | |||||
| ->attachMessageType($type); | |||||
| } | |||||
| protected function getConfiguration() { | |||||
| return array( | |||||
| self::CONFIG_AUX_PHID => true, | |||||
| self::CONFIG_COLUMN_SCHEMA => array( | |||||
| 'messageKey' => 'text64', | |||||
| 'messageText' => 'text', | |||||
| ), | |||||
| self::CONFIG_KEY_SCHEMA => array( | |||||
| 'key_type' => array( | |||||
| 'columns' => array('messageKey'), | |||||
| 'unique' => true, | |||||
| ), | |||||
| ), | |||||
| ) + parent::getConfiguration(); | |||||
| } | |||||
| public function getPHIDType() { | |||||
| return PhabricatorAuthMessagePHIDType::TYPECONST; | |||||
| } | |||||
| public function getObjectName() { | |||||
| return pht('Auth Message %d', $this->getID()); | |||||
| } | |||||
| public function getURI() { | |||||
| return urisprintf('/auth/message/%s', $this->getID()); | |||||
| } | |||||
| public function attachMessageType(PhabricatorAuthMessageType $type) { | |||||
| $this->messageType = $type; | |||||
| return $this; | |||||
| } | |||||
| public function getMessageType() { | |||||
| return $this->assertAttached($this->messageType); | |||||
| } | |||||
| public function getMessageTypeDisplayName() { | |||||
| return $this->getMessageType()->getDisplayName(); | |||||
| } | |||||
| /* -( PhabricatorPolicyInterface )----------------------------------------- */ | |||||
| public function getCapabilities() { | |||||
| return array( | |||||
| PhabricatorPolicyCapability::CAN_VIEW, | |||||
| PhabricatorPolicyCapability::CAN_EDIT, | |||||
| ); | |||||
| } | |||||
| public function getPolicy($capability) { | |||||
| switch ($capability) { | |||||
| case PhabricatorPolicyCapability::CAN_VIEW: | |||||
| return PhabricatorPolicies::getMostOpenPolicy(); | |||||
| default: | |||||
| return false; | |||||
| } | |||||
| } | |||||
| public function hasAutomaticCapability($capability, PhabricatorUser $viewer) { | |||||
| switch ($capability) { | |||||
| case PhabricatorPolicyCapability::CAN_VIEW: | |||||
| // Even if an install doesn't allow public users, you can still view | |||||
| // auth messages: otherwise, we can't do things like show you | |||||
| // guidance on the login screen. | |||||
| return true; | |||||
| default: | |||||
| return false; | |||||
| } | |||||
| } | |||||
| /* -( PhabricatorApplicationTransactionInterface )------------------------- */ | |||||
| public function getApplicationTransactionEditor() { | |||||
| return new PhabricatorAuthMessageEditor(); | |||||
| } | |||||
| public function getApplicationTransactionTemplate() { | |||||
| return new PhabricatorAuthMessageTransaction(); | |||||
| } | |||||
| /* -( PhabricatorDestructibleInterface )----------------------------------- */ | |||||
| public function destroyObjectPermanently( | |||||
| PhabricatorDestructionEngine $engine) { | |||||
| $this->delete(); | |||||
| } | |||||
| } | |||||