diff --git a/resources/sql/autopatches/20151130.phurl.mailkey.1.sql b/resources/sql/autopatches/20151130.phurl.mailkey.1.sql new file mode 100644 index 0000000000..67e9e25586 --- /dev/null +++ b/resources/sql/autopatches/20151130.phurl.mailkey.1.sql @@ -0,0 +1,2 @@ +ALTER TABLE {$NAMESPACE}_phurl.phurl_url + ADD mailKey binary(20) NOT NULL; diff --git a/resources/sql/autopatches/20151130.phurl.mailkey.2.php b/resources/sql/autopatches/20151130.phurl.mailkey.2.php new file mode 100644 index 0000000000..93c7e7a4d2 --- /dev/null +++ b/resources/sql/autopatches/20151130.phurl.mailkey.2.php @@ -0,0 +1,18 @@ +establishConnection('w'); +$iterator = new LiskMigrationIterator($table); +foreach ($iterator as $url) { + $id = $url->getID(); + + echo pht('Adding mail key for Phurl %d...', $id); + echo "\n"; + + queryfx( + $conn_w, + 'UPDATE %T SET mailKey = %s WHERE id = %d', + $table->getTableName(), + Filesystem::readRandomCharacters(20), + $id); +} diff --git a/src/applications/phurl/editor/PhabricatorPhurlURLEditor.php b/src/applications/phurl/editor/PhabricatorPhurlURLEditor.php index 712478c839..c36100f12b 100644 --- a/src/applications/phurl/editor/PhabricatorPhurlURLEditor.php +++ b/src/applications/phurl/editor/PhabricatorPhurlURLEditor.php @@ -211,11 +211,9 @@ final class PhabricatorPhurlURLEditor public function getMailTagsMap() { return array( - PhabricatorPhurlURLTransaction::MAILTAG_CONTENT => + PhabricatorPhurlURLTransaction::MAILTAG_DETAILS => pht( - "A URL's name or path changes."), - PhabricatorPhurlURLTransaction::MAILTAG_OTHER => - pht('Other event activity not listed above occurs.'), + "A URL's details change."), ); } diff --git a/src/applications/phurl/storage/PhabricatorPhurlURL.php b/src/applications/phurl/storage/PhabricatorPhurlURL.php index 34a143bc90..7df1d241a7 100644 --- a/src/applications/phurl/storage/PhabricatorPhurlURL.php +++ b/src/applications/phurl/storage/PhabricatorPhurlURL.php @@ -22,6 +22,8 @@ final class PhabricatorPhurlURL extends PhabricatorPhurlDAO protected $authorPHID; protected $spacePHID; + protected $mailKey; + const DEFAULT_ICON = 'fa-compress'; public static function initializeNewPhurlURL(PhabricatorUser $actor) { @@ -45,6 +47,7 @@ final class PhabricatorPhurlURL extends PhabricatorPhurlDAO 'alias' => 'sort64?', 'longURL' => 'text', 'description' => 'text', + 'mailKey' => 'bytes20', ), self::CONFIG_KEY_SCHEMA => array( 'key_instance' => array( @@ -58,6 +61,13 @@ final class PhabricatorPhurlURL extends PhabricatorPhurlDAO ) + parent::getConfiguration(); } + public function save() { + if (!$this->getMailKey()) { + $this->setMailKey(Filesystem::readRandomCharacters(20)); + } + return parent::save(); + } + public function generatePHID() { return PhabricatorPHID::generateNewPHID( PhabricatorPhurlURLPHIDType::TYPECONST); diff --git a/src/applications/phurl/storage/PhabricatorPhurlURLTransaction.php b/src/applications/phurl/storage/PhabricatorPhurlURLTransaction.php index 6d275bcefb..d520b30518 100644 --- a/src/applications/phurl/storage/PhabricatorPhurlURLTransaction.php +++ b/src/applications/phurl/storage/PhabricatorPhurlURLTransaction.php @@ -8,8 +8,7 @@ final class PhabricatorPhurlURLTransaction const TYPE_ALIAS = 'phurl.alias'; const TYPE_DESCRIPTION = 'phurl.description'; - const MAILTAG_CONTENT = 'phurl:content'; - const MAILTAG_OTHER = 'phurl:other'; + const MAILTAG_DETAILS = 'phurl-details'; public function getApplicationName() { return 'phurl'; @@ -235,7 +234,7 @@ final class PhabricatorPhurlURLTransaction case self::TYPE_DESCRIPTION: case self::TYPE_URL: case self::TYPE_ALIAS: - $tags[] = self::MAILTAG_CONTENT; + $tags[] = self::MAILTAG_DETAILS; break; } return $tags;