mirror of
https://we.phorge.it/source/phorge.git
synced 2024-12-02 03:32:42 +01:00
(stable) Promote 2015 Week 32
This commit is contained in:
commit
2eab1c1943
387 changed files with 6573 additions and 4039 deletions
|
@ -7,7 +7,7 @@
|
|||
*/
|
||||
return array(
|
||||
'names' => array(
|
||||
'core.pkg.css' => 'f79ebe46',
|
||||
'core.pkg.css' => '33799ec4',
|
||||
'core.pkg.js' => 'a590b451',
|
||||
'darkconsole.pkg.js' => 'e7393ebb',
|
||||
'differential.pkg.css' => '9451634c',
|
||||
|
@ -28,7 +28,6 @@ return array(
|
|||
'rsrc/css/aphront/table-view.css' => 'e3632cc9',
|
||||
'rsrc/css/aphront/tokenizer.css' => '04875312',
|
||||
'rsrc/css/aphront/tooltip.css' => '7672b60f',
|
||||
'rsrc/css/aphront/two-column.css' => '16ab3ad2',
|
||||
'rsrc/css/aphront/typeahead-browse.css' => 'd8581d2c',
|
||||
'rsrc/css/aphront/typeahead.css' => '0e403212',
|
||||
'rsrc/css/application/almanac/almanac.css' => 'dbb9b3af',
|
||||
|
@ -48,13 +47,13 @@ return array(
|
|||
'rsrc/css/application/config/unhandled-exception.css' => '4c96257a',
|
||||
'rsrc/css/application/conpherence/durable-column.css' => '86396117',
|
||||
'rsrc/css/application/conpherence/menu.css' => 'f99fee4c',
|
||||
'rsrc/css/application/conpherence/message-pane.css' => '2c16d204',
|
||||
'rsrc/css/application/conpherence/message-pane.css' => 'dd4f8a3b',
|
||||
'rsrc/css/application/conpherence/notification.css' => '6cdcc253',
|
||||
'rsrc/css/application/conpherence/transaction.css' => '85d0974c',
|
||||
'rsrc/css/application/conpherence/update.css' => 'faf6be09',
|
||||
'rsrc/css/application/conpherence/widget-pane.css' => '419fd50c',
|
||||
'rsrc/css/application/contentsource/content-source-view.css' => '4b8b05d4',
|
||||
'rsrc/css/application/countdown/timer.css' => '4f02bd98',
|
||||
'rsrc/css/application/countdown/timer.css' => 'e7544472',
|
||||
'rsrc/css/application/daemon/bulk-job.css' => 'df9c1d4a',
|
||||
'rsrc/css/application/dashboard/dashboard.css' => 'eb458607',
|
||||
'rsrc/css/application/diff/inline-comment-summary.css' => '51efda3a',
|
||||
|
@ -73,7 +72,7 @@ return array(
|
|||
'rsrc/css/application/files/global-drag-and-drop.css' => '697324ad',
|
||||
'rsrc/css/application/flag/flag.css' => '5337623f',
|
||||
'rsrc/css/application/harbormaster/harbormaster.css' => '49d64eb4',
|
||||
'rsrc/css/application/herald/herald-test.css' => '778b008e',
|
||||
'rsrc/css/application/herald/herald-test.css' => 'a52e323e',
|
||||
'rsrc/css/application/herald/herald.css' => '826075fa',
|
||||
'rsrc/css/application/maniphest/batch-editor.css' => 'b0f0b6d5',
|
||||
'rsrc/css/application/maniphest/report.css' => 'f6931fdf',
|
||||
|
@ -83,7 +82,7 @@ return array(
|
|||
'rsrc/css/application/owners/owners-path-editor.css' => '2f00933b',
|
||||
'rsrc/css/application/paste/paste.css' => '1898e534',
|
||||
'rsrc/css/application/people/people-profile.css' => '25970776',
|
||||
'rsrc/css/application/phame/phame.css' => '3259b53d',
|
||||
'rsrc/css/application/phame/phame.css' => 'bb147387',
|
||||
'rsrc/css/application/pholio/pholio-edit.css' => '3ad9d1ee',
|
||||
'rsrc/css/application/pholio/pholio-inline-comments.css' => '8e545e49',
|
||||
'rsrc/css/application/pholio/pholio.css' => '95174bdd',
|
||||
|
@ -94,10 +93,7 @@ return array(
|
|||
'rsrc/css/application/policy/policy-edit.css' => '815c66f7',
|
||||
'rsrc/css/application/policy/policy-transaction-detail.css' => '82100a43',
|
||||
'rsrc/css/application/policy/policy.css' => '957ea14c',
|
||||
'rsrc/css/application/ponder/comments.css' => '865a67e6',
|
||||
'rsrc/css/application/ponder/feed.css' => 'e62615b6',
|
||||
'rsrc/css/application/ponder/post.css' => '9d415218',
|
||||
'rsrc/css/application/ponder/vote.css' => 'aea452b0',
|
||||
'rsrc/css/application/ponder/ponder-view.css' => 'fcd6b398',
|
||||
'rsrc/css/application/projects/project-icon.css' => '4e3eaa5a',
|
||||
'rsrc/css/application/releeph/releeph-core.css' => '9b3c5733',
|
||||
'rsrc/css/application/releeph/releeph-preview-branch.css' => 'b7a6f4a5',
|
||||
|
@ -112,7 +108,7 @@ return array(
|
|||
'rsrc/css/core/syntax.css' => '9fd11da8',
|
||||
'rsrc/css/core/z-index.css' => '57ddcaa2',
|
||||
'rsrc/css/diviner/diviner-shared.css' => '5a337049',
|
||||
'rsrc/css/font/font-awesome.css' => 'e2e712fe',
|
||||
'rsrc/css/font/font-awesome.css' => 'd2fc4e8d',
|
||||
'rsrc/css/font/font-lato.css' => '5ab1a46a',
|
||||
'rsrc/css/font/font-roboto-slab.css' => 'f24a53cb',
|
||||
'rsrc/css/font/phui-font-icon-base.css' => '3dad2ae3',
|
||||
|
@ -126,12 +122,12 @@ return array(
|
|||
'rsrc/css/phui/calendar/phui-calendar.css' => 'ccabe893',
|
||||
'rsrc/css/phui/phui-action-list.css' => 'c5eba19d',
|
||||
'rsrc/css/phui/phui-action-panel.css' => '3ee9afd5',
|
||||
'rsrc/css/phui/phui-badge.css' => 'b6218fa8',
|
||||
'rsrc/css/phui/phui-badge.css' => 'f25c3476',
|
||||
'rsrc/css/phui/phui-box.css' => 'a5bb366d',
|
||||
'rsrc/css/phui/phui-button.css' => '16020a60',
|
||||
'rsrc/css/phui/phui-crumbs-view.css' => 'd842f867',
|
||||
'rsrc/css/phui/phui-document.css' => '0267054b',
|
||||
'rsrc/css/phui/phui-feed-story.css' => 'c7d8113a',
|
||||
'rsrc/css/phui/phui-feed-story.css' => 'b7b26d23',
|
||||
'rsrc/css/phui/phui-fontkit.css' => 'cb8ae7ad',
|
||||
'rsrc/css/phui/phui-form-view.css' => '621b21c5',
|
||||
'rsrc/css/phui/phui-form.css' => 'afdb2c6e',
|
||||
|
@ -142,27 +138,27 @@ return array(
|
|||
'rsrc/css/phui/phui-info-view.css' => '5b16bac6',
|
||||
'rsrc/css/phui/phui-list.css' => '125599df',
|
||||
'rsrc/css/phui/phui-object-box.css' => '407eaf5a',
|
||||
'rsrc/css/phui/phui-object-item-list-view.css' => 'a1b990b7',
|
||||
'rsrc/css/phui/phui-object-item-list-view.css' => '36ce366c',
|
||||
'rsrc/css/phui/phui-pager.css' => 'bea33d23',
|
||||
'rsrc/css/phui/phui-pinboard-view.css' => '2495140e',
|
||||
'rsrc/css/phui/phui-property-list-view.css' => 'aeb09581',
|
||||
'rsrc/css/phui/phui-property-list-view.css' => '15bbe0b0',
|
||||
'rsrc/css/phui/phui-remarkup-preview.css' => '867f85b3',
|
||||
'rsrc/css/phui/phui-spacing.css' => '042804d6',
|
||||
'rsrc/css/phui/phui-status.css' => '888cedb8',
|
||||
'rsrc/css/phui/phui-tag-view.css' => '402691cc',
|
||||
'rsrc/css/phui/phui-text.css' => 'cf019f54',
|
||||
'rsrc/css/phui/phui-timeline-view.css' => 'fc23e7b7',
|
||||
'rsrc/css/phui/phui-workboard-view.css' => '6a20991a',
|
||||
'rsrc/css/phui/phui-workpanel-view.css' => '8cebb2b1',
|
||||
'rsrc/css/phui/phui-timeline-view.css' => 'f1bccf73',
|
||||
'rsrc/css/phui/phui-workboard-view.css' => '6704d68d',
|
||||
'rsrc/css/phui/phui-workpanel-view.css' => 'adec7699',
|
||||
'rsrc/css/sprite-login.css' => '1ebb9bf9',
|
||||
'rsrc/css/sprite-main-header.css' => 'f07bbb87',
|
||||
'rsrc/css/sprite-menu.css' => '9dd65b92',
|
||||
'rsrc/css/sprite-projects.css' => 'e5ad842a',
|
||||
'rsrc/css/sprite-tokens.css' => '4f399012',
|
||||
'rsrc/externals/font/fontawesome/fontawesome-webfont.eot' => '5fb6fb0e',
|
||||
'rsrc/externals/font/fontawesome/fontawesome-webfont.ttf' => 'a653cb11',
|
||||
'rsrc/externals/font/fontawesome/fontawesome-webfont.woff' => '80526fc8',
|
||||
'rsrc/externals/font/fontawesome/fontawesome-webfont.woff2' => '4924d54d',
|
||||
'rsrc/externals/font/fontawesome/fontawesome-webfont.eot' => '7d5a4653',
|
||||
'rsrc/externals/font/fontawesome/fontawesome-webfont.ttf' => '531835e8',
|
||||
'rsrc/externals/font/fontawesome/fontawesome-webfont.woff' => '427fe363',
|
||||
'rsrc/externals/font/fontawesome/fontawesome-webfont.woff2' => 'a9897054',
|
||||
'rsrc/externals/font/lato/lato-bold.eot' => '99fbcf8c',
|
||||
'rsrc/externals/font/lato/lato-bold.ttf' => '0a7141f7',
|
||||
'rsrc/externals/font/lato/lato-bold.woff' => 'f5db2061',
|
||||
|
@ -382,7 +378,7 @@ return array(
|
|||
'rsrc/js/application/doorkeeper/behavior-doorkeeper-tag.js' => 'e5822781',
|
||||
'rsrc/js/application/files/behavior-icon-composer.js' => '8ef9ab58',
|
||||
'rsrc/js/application/files/behavior-launch-icon-composer.js' => '48086888',
|
||||
'rsrc/js/application/herald/HeraldRuleEditor.js' => '52684226',
|
||||
'rsrc/js/application/herald/HeraldRuleEditor.js' => '91a6031b',
|
||||
'rsrc/js/application/herald/PathTypeahead.js' => 'f7fc67ec',
|
||||
'rsrc/js/application/herald/herald-rule-editor.js' => '7ebaeed3',
|
||||
'rsrc/js/application/maniphest/behavior-batch-editor.js' => '782ab6e7',
|
||||
|
@ -503,7 +499,6 @@ return array(
|
|||
'aphront-table-view-css' => 'e3632cc9',
|
||||
'aphront-tokenizer-control-css' => '04875312',
|
||||
'aphront-tooltip-css' => '7672b60f',
|
||||
'aphront-two-column-view-css' => '16ab3ad2',
|
||||
'aphront-typeahead-control-css' => '0e403212',
|
||||
'auth-css' => '0877ed6e',
|
||||
'bulk-job-css' => 'df9c1d4a',
|
||||
|
@ -514,7 +509,7 @@ return array(
|
|||
'config-welcome-css' => '6abd79be',
|
||||
'conpherence-durable-column-view' => '86396117',
|
||||
'conpherence-menu-css' => 'f99fee4c',
|
||||
'conpherence-message-pane-css' => '2c16d204',
|
||||
'conpherence-message-pane-css' => 'dd4f8a3b',
|
||||
'conpherence-notification-css' => '6cdcc253',
|
||||
'conpherence-thread-manager' => '01774ab2',
|
||||
'conpherence-transaction-css' => '85d0974c',
|
||||
|
@ -532,14 +527,14 @@ return array(
|
|||
'diffusion-readme-css' => '2106ea08',
|
||||
'diffusion-source-css' => '66fdf661',
|
||||
'diviner-shared-css' => '5a337049',
|
||||
'font-fontawesome' => 'e2e712fe',
|
||||
'font-fontawesome' => 'd2fc4e8d',
|
||||
'font-lato' => '5ab1a46a',
|
||||
'font-roboto-slab' => 'f24a53cb',
|
||||
'global-drag-and-drop-css' => '697324ad',
|
||||
'harbormaster-css' => '49d64eb4',
|
||||
'herald-css' => '826075fa',
|
||||
'herald-rule-editor' => '52684226',
|
||||
'herald-test-css' => '778b008e',
|
||||
'herald-rule-editor' => '91a6031b',
|
||||
'herald-test-css' => 'a52e323e',
|
||||
'inline-comment-summary-css' => '51efda3a',
|
||||
'javelin-aphlict' => '5359e785',
|
||||
'javelin-behavior' => '61cbc29a',
|
||||
|
@ -722,7 +717,7 @@ return array(
|
|||
'phabricator-chatlog-css' => 'd295b020',
|
||||
'phabricator-content-source-view-css' => '4b8b05d4',
|
||||
'phabricator-core-css' => 'a76cefc9',
|
||||
'phabricator-countdown-css' => '4f02bd98',
|
||||
'phabricator-countdown-css' => 'e7544472',
|
||||
'phabricator-dashboard-css' => 'eb458607',
|
||||
'phabricator-drag-and-drop-file-upload' => '07de8873',
|
||||
'phabricator-draggable-list' => 'a16ec1c6',
|
||||
|
@ -765,7 +760,7 @@ return array(
|
|||
'phabricator-uiexample-reactor-sendclass' => '1def2711',
|
||||
'phabricator-uiexample-reactor-sendproperties' => 'b1f0ccee',
|
||||
'phabricator-zindex-css' => '57ddcaa2',
|
||||
'phame-css' => '3259b53d',
|
||||
'phame-css' => 'bb147387',
|
||||
'pholio-css' => '95174bdd',
|
||||
'pholio-edit-css' => '3ad9d1ee',
|
||||
'pholio-inline-comments-css' => '8e545e49',
|
||||
|
@ -775,7 +770,7 @@ return array(
|
|||
'phrequent-css' => 'ffc185ad',
|
||||
'phriction-document-css' => 'd1861e06',
|
||||
'phui-action-panel-css' => '3ee9afd5',
|
||||
'phui-badge-view-css' => 'b6218fa8',
|
||||
'phui-badge-view-css' => 'f25c3476',
|
||||
'phui-box-css' => 'a5bb366d',
|
||||
'phui-button-css' => '16020a60',
|
||||
'phui-calendar-css' => 'ccabe893',
|
||||
|
@ -784,7 +779,7 @@ return array(
|
|||
'phui-calendar-month-css' => '476be7e0',
|
||||
'phui-crumbs-view-css' => 'd842f867',
|
||||
'phui-document-view-css' => '0267054b',
|
||||
'phui-feed-story-css' => 'c7d8113a',
|
||||
'phui-feed-story-css' => 'b7b26d23',
|
||||
'phui-font-icon-base-css' => '3dad2ae3',
|
||||
'phui-fontkit-css' => 'cb8ae7ad',
|
||||
'phui-form-css' => 'afdb2c6e',
|
||||
|
@ -797,29 +792,26 @@ return array(
|
|||
'phui-inline-comment-view-css' => '9fadd6b8',
|
||||
'phui-list-view-css' => '125599df',
|
||||
'phui-object-box-css' => '407eaf5a',
|
||||
'phui-object-item-list-view-css' => 'a1b990b7',
|
||||
'phui-object-item-list-view-css' => '36ce366c',
|
||||
'phui-pager-css' => 'bea33d23',
|
||||
'phui-pinboard-view-css' => '2495140e',
|
||||
'phui-property-list-view-css' => 'aeb09581',
|
||||
'phui-property-list-view-css' => '15bbe0b0',
|
||||
'phui-remarkup-preview-css' => '867f85b3',
|
||||
'phui-spacing-css' => '042804d6',
|
||||
'phui-status-list-view-css' => '888cedb8',
|
||||
'phui-tag-view-css' => '402691cc',
|
||||
'phui-text-css' => 'cf019f54',
|
||||
'phui-theme-css' => '6b451f24',
|
||||
'phui-timeline-view-css' => 'fc23e7b7',
|
||||
'phui-workboard-view-css' => '6a20991a',
|
||||
'phui-workpanel-view-css' => '8cebb2b1',
|
||||
'phui-timeline-view-css' => 'f1bccf73',
|
||||
'phui-workboard-view-css' => '6704d68d',
|
||||
'phui-workpanel-view-css' => 'adec7699',
|
||||
'phuix-action-list-view' => 'b5c256b8',
|
||||
'phuix-action-view' => '8cf6d262',
|
||||
'phuix-dropdown-menu' => 'bd4c8dca',
|
||||
'policy-css' => '957ea14c',
|
||||
'policy-edit-css' => '815c66f7',
|
||||
'policy-transaction-detail-css' => '82100a43',
|
||||
'ponder-comment-table-css' => '865a67e6',
|
||||
'ponder-feed-view-css' => 'e62615b6',
|
||||
'ponder-post-css' => '9d415218',
|
||||
'ponder-vote-css' => 'aea452b0',
|
||||
'ponder-view-css' => 'fcd6b398',
|
||||
'project-icon-css' => '4e3eaa5a',
|
||||
'raphael-core' => '51ee6b43',
|
||||
'raphael-g' => '40dde778',
|
||||
|
@ -1172,15 +1164,6 @@ return array(
|
|||
'javelin-dom',
|
||||
'javelin-reactor-dom',
|
||||
),
|
||||
52684226 => array(
|
||||
'multirow-row-manager',
|
||||
'javelin-install',
|
||||
'javelin-util',
|
||||
'javelin-dom',
|
||||
'javelin-stratcom',
|
||||
'javelin-json',
|
||||
'phabricator-prefab',
|
||||
),
|
||||
'5359e785' => array(
|
||||
'javelin-install',
|
||||
'javelin-util',
|
||||
|
@ -1539,6 +1522,15 @@ return array(
|
|||
'javelin-dom',
|
||||
'javelin-stratcom',
|
||||
),
|
||||
'91a6031b' => array(
|
||||
'multirow-row-manager',
|
||||
'javelin-install',
|
||||
'javelin-util',
|
||||
'javelin-dom',
|
||||
'javelin-stratcom',
|
||||
'javelin-json',
|
||||
'phabricator-prefab',
|
||||
),
|
||||
'93d0c9e3' => array(
|
||||
'javelin-behavior',
|
||||
'javelin-stratcom',
|
||||
|
|
2
resources/sql/autopatches/20150725.badges.mailkey.1.sql
Normal file
2
resources/sql/autopatches/20150725.badges.mailkey.1.sql
Normal file
|
@ -0,0 +1,2 @@
|
|||
ALTER TABLE {$NAMESPACE}_badges.badges_badge
|
||||
ADD mailKey binary(20) NOT NULL;
|
18
resources/sql/autopatches/20150725.badges.mailkey.2.php
Normal file
18
resources/sql/autopatches/20150725.badges.mailkey.2.php
Normal file
|
@ -0,0 +1,18 @@
|
|||
<?php
|
||||
|
||||
$table = new PhabricatorBadgesBadge();
|
||||
$conn_w = $table->establishConnection('w');
|
||||
$iterator = new LiskMigrationIterator($table);
|
||||
foreach ($iterator as $badge) {
|
||||
$id = $badge->getID();
|
||||
|
||||
echo pht('Adding mail key for badge %d...', $id);
|
||||
echo "\n";
|
||||
|
||||
queryfx(
|
||||
$conn_w,
|
||||
'UPDATE %T SET mailKey = %s WHERE id = %d',
|
||||
$table->getTableName(),
|
||||
Filesystem::readRandomCharacters(20),
|
||||
$id);
|
||||
}
|
|
@ -0,0 +1,2 @@
|
|||
ALTER TABLE {$NAMESPACE}_badges.badges_badge
|
||||
DROP COLUMN viewPolicy;
|
|
@ -0,0 +1,2 @@
|
|||
ALTER TABLE {$NAMESPACE}_countdown.countdown
|
||||
ADD mailKey binary(20) NOT NULL;
|
18
resources/sql/autopatches/20150725.countdown.mailkey.2.php
Normal file
18
resources/sql/autopatches/20150725.countdown.mailkey.2.php
Normal file
|
@ -0,0 +1,18 @@
|
|||
<?php
|
||||
|
||||
$table = new PhabricatorCountdown();
|
||||
$conn_w = $table->establishConnection('w');
|
||||
$iterator = new LiskMigrationIterator($table);
|
||||
foreach ($iterator as $countdown) {
|
||||
$id = $countdown->getID();
|
||||
|
||||
echo pht('Adding mail key for countdown %d...', $id);
|
||||
echo "\n";
|
||||
|
||||
queryfx(
|
||||
$conn_w,
|
||||
'UPDATE %T SET mailKey = %s WHERE id = %d',
|
||||
$table->getTableName(),
|
||||
Filesystem::readRandomCharacters(20),
|
||||
$id);
|
||||
}
|
|
@ -0,0 +1,2 @@
|
|||
ALTER TABLE {$NAMESPACE}_slowvote.slowvote_poll
|
||||
ADD mailKey binary(20) NOT NULL;
|
18
resources/sql/autopatches/20150725.slowvote.mailkey.2.php
Normal file
18
resources/sql/autopatches/20150725.slowvote.mailkey.2.php
Normal file
|
@ -0,0 +1,18 @@
|
|||
<?php
|
||||
|
||||
$table = new PhabricatorSlowvotePoll();
|
||||
$conn_w = $table->establishConnection('w');
|
||||
$iterator = new LiskMigrationIterator($table);
|
||||
foreach ($iterator as $slowvote) {
|
||||
$id = $slowvote->getID();
|
||||
|
||||
echo pht('Adding mail key for Slowvote %d...', $id);
|
||||
echo "\n";
|
||||
|
||||
queryfx(
|
||||
$conn_w,
|
||||
'UPDATE %T SET mailKey = %s WHERE id = %d',
|
||||
$table->getTableName(),
|
||||
Filesystem::readRandomCharacters(20),
|
||||
$id);
|
||||
}
|
27
resources/sql/autopatches/20150730.herald.1.sql
Normal file
27
resources/sql/autopatches/20150730.herald.1.sql
Normal file
|
@ -0,0 +1,27 @@
|
|||
UPDATE {$NAMESPACE}_herald.herald_action a
|
||||
JOIN {$NAMESPACE}_herald.herald_rule r
|
||||
ON a.ruleID = r.id
|
||||
SET a.action = 'subscribers.add'
|
||||
WHERE r.ruleType != 'personal'
|
||||
AND a.action = 'addcc';
|
||||
|
||||
UPDATE {$NAMESPACE}_herald.herald_action a
|
||||
JOIN {$NAMESPACE}_herald.herald_rule r
|
||||
ON a.ruleID = r.id
|
||||
SET a.action = 'subscribers.self.add'
|
||||
WHERE r.ruleType = 'personal'
|
||||
AND a.action = 'addcc';
|
||||
|
||||
UPDATE {$NAMESPACE}_herald.herald_action a
|
||||
JOIN {$NAMESPACE}_herald.herald_rule r
|
||||
ON a.ruleID = r.id
|
||||
SET a.action = 'subscribers.remove'
|
||||
WHERE r.ruleType != 'personal'
|
||||
AND a.action = 'remcc';
|
||||
|
||||
UPDATE {$NAMESPACE}_herald.herald_action a
|
||||
JOIN {$NAMESPACE}_herald.herald_rule r
|
||||
ON a.ruleID = r.id
|
||||
SET a.action = 'subscribers.self.remove'
|
||||
WHERE r.ruleType = 'personal'
|
||||
AND a.action = 'remcc';
|
13
resources/sql/autopatches/20150730.herald.2.sql
Normal file
13
resources/sql/autopatches/20150730.herald.2.sql
Normal file
|
@ -0,0 +1,13 @@
|
|||
UPDATE {$NAMESPACE}_herald.herald_action a
|
||||
JOIN {$NAMESPACE}_herald.herald_rule r
|
||||
ON a.ruleID = r.id
|
||||
SET a.action = 'email.other'
|
||||
WHERE r.ruleType != 'personal'
|
||||
AND a.action = 'email';
|
||||
|
||||
UPDATE {$NAMESPACE}_herald.herald_action a
|
||||
JOIN {$NAMESPACE}_herald.herald_rule r
|
||||
ON a.ruleID = r.id
|
||||
SET a.action = 'email.self'
|
||||
WHERE r.ruleType = 'personal'
|
||||
AND a.action = 'email';
|
11
resources/sql/autopatches/20150730.herald.3.sql
Normal file
11
resources/sql/autopatches/20150730.herald.3.sql
Normal file
|
@ -0,0 +1,11 @@
|
|||
UPDATE {$NAMESPACE}_herald.herald_action a
|
||||
JOIN {$NAMESPACE}_herald.herald_rule r
|
||||
ON a.ruleID = r.id
|
||||
SET a.action = 'projects.add'
|
||||
WHERE a.action = 'addprojects';
|
||||
|
||||
UPDATE {$NAMESPACE}_herald.herald_action a
|
||||
JOIN {$NAMESPACE}_herald.herald_rule r
|
||||
ON a.ruleID = r.id
|
||||
SET a.action = 'projects.remove'
|
||||
WHERE a.action = 'removeprojects';
|
13
resources/sql/autopatches/20150730.herald.4.sql
Normal file
13
resources/sql/autopatches/20150730.herald.4.sql
Normal file
|
@ -0,0 +1,13 @@
|
|||
UPDATE {$NAMESPACE}_herald.herald_action a
|
||||
JOIN {$NAMESPACE}_herald.herald_rule r
|
||||
ON a.ruleID = r.id
|
||||
SET a.action = 'maniphest.assign.other'
|
||||
WHERE r.ruleType != 'personal'
|
||||
AND a.action = 'assigntask';
|
||||
|
||||
UPDATE {$NAMESPACE}_herald.herald_action a
|
||||
JOIN {$NAMESPACE}_herald.herald_rule r
|
||||
ON a.ruleID = r.id
|
||||
SET a.action = 'maniphest.assign.self'
|
||||
WHERE r.ruleType = 'personal'
|
||||
AND a.action = 'assigntask';
|
27
resources/sql/autopatches/20150730.herald.5.sql
Normal file
27
resources/sql/autopatches/20150730.herald.5.sql
Normal file
|
@ -0,0 +1,27 @@
|
|||
UPDATE {$NAMESPACE}_herald.herald_action a
|
||||
JOIN {$NAMESPACE}_herald.herald_rule r
|
||||
ON a.ruleID = r.id
|
||||
SET a.action = 'differential.reviewers.blocking'
|
||||
WHERE r.ruleType != 'personal'
|
||||
AND a.action = 'addreviewers';
|
||||
|
||||
UPDATE {$NAMESPACE}_herald.herald_action a
|
||||
JOIN {$NAMESPACE}_herald.herald_rule r
|
||||
ON a.ruleID = r.id
|
||||
SET a.action = 'differential.reviewers.self.blocking'
|
||||
WHERE r.ruleType = 'personal'
|
||||
AND a.action = 'addreviewers';
|
||||
|
||||
UPDATE {$NAMESPACE}_herald.herald_action a
|
||||
JOIN {$NAMESPACE}_herald.herald_rule r
|
||||
ON a.ruleID = r.id
|
||||
SET a.action = 'differential.reviewers.add'
|
||||
WHERE r.ruleType != 'personal'
|
||||
AND a.action = 'addblockingreviewers';
|
||||
|
||||
UPDATE {$NAMESPACE}_herald.herald_action a
|
||||
JOIN {$NAMESPACE}_herald.herald_rule r
|
||||
ON a.ruleID = r.id
|
||||
SET a.action = 'differential.reviewers.self.add'
|
||||
WHERE r.ruleType = 'personal'
|
||||
AND a.action = 'addblockingreviewers';
|
6
resources/sql/autopatches/20150730.herald.6.sql
Normal file
6
resources/sql/autopatches/20150730.herald.6.sql
Normal file
|
@ -0,0 +1,6 @@
|
|||
UPDATE {$NAMESPACE}_herald.herald_action a
|
||||
JOIN {$NAMESPACE}_herald.herald_rule r
|
||||
ON a.ruleID = r.id
|
||||
SET a.action = 'legalpad.require'
|
||||
WHERE r.ruleType != 'personal'
|
||||
AND a.action = 'signature';
|
6
resources/sql/autopatches/20150730.herald.7.sql
Normal file
6
resources/sql/autopatches/20150730.herald.7.sql
Normal file
|
@ -0,0 +1,6 @@
|
|||
UPDATE {$NAMESPACE}_herald.herald_action a
|
||||
JOIN {$NAMESPACE}_herald.herald_rule r
|
||||
ON a.ruleID = r.id
|
||||
SET a.action = 'harbormaster.build'
|
||||
WHERE r.ruleType != 'personal'
|
||||
AND a.action = 'applybuildplans';
|
13
resources/sql/autopatches/20150803.herald.1.sql
Normal file
13
resources/sql/autopatches/20150803.herald.1.sql
Normal file
|
@ -0,0 +1,13 @@
|
|||
UPDATE {$NAMESPACE}_herald.herald_action a
|
||||
JOIN {$NAMESPACE}_herald.herald_rule r
|
||||
ON a.ruleID = r.id
|
||||
SET a.action = 'diffusion.auditors.add'
|
||||
WHERE r.ruleType != 'personal'
|
||||
AND a.action = 'audit';
|
||||
|
||||
UPDATE {$NAMESPACE}_herald.herald_action a
|
||||
JOIN {$NAMESPACE}_herald.herald_rule r
|
||||
ON a.ruleID = r.id
|
||||
SET a.action = 'diffusion.auditors.self.add'
|
||||
WHERE r.ruleType = 'personal'
|
||||
AND a.action = 'audit';
|
13
resources/sql/autopatches/20150803.herald.2.sql
Normal file
13
resources/sql/autopatches/20150803.herald.2.sql
Normal file
|
@ -0,0 +1,13 @@
|
|||
UPDATE {$NAMESPACE}_herald.herald_action a
|
||||
JOIN {$NAMESPACE}_herald.herald_rule r
|
||||
ON a.ruleID = r.id
|
||||
SET a.action = 'diffusion.block'
|
||||
WHERE r.contentType != 'differential.diff'
|
||||
AND a.action = 'block';
|
||||
|
||||
UPDATE {$NAMESPACE}_herald.herald_action a
|
||||
JOIN {$NAMESPACE}_herald.herald_rule r
|
||||
ON a.ruleID = r.id
|
||||
SET a.action = 'differential.block'
|
||||
WHERE r.contentType = 'differential.diff'
|
||||
AND a.action = 'block';
|
|
@ -0,0 +1,2 @@
|
|||
ALTER TABLE {$NAMESPACE}_ponder.ponder_answer
|
||||
ADD mailKey binary(20) NOT NULL;
|
|
@ -0,0 +1,18 @@
|
|||
<?php
|
||||
|
||||
$table = new PonderAnswer();
|
||||
$conn_w = $table->establishConnection('w');
|
||||
$iterator = new LiskMigrationIterator($table);
|
||||
foreach ($iterator as $answer) {
|
||||
$id = $answer->getID();
|
||||
|
||||
echo pht('Adding mail key for Answer %d...', $id);
|
||||
echo "\n";
|
||||
|
||||
queryfx(
|
||||
$conn_w,
|
||||
'UPDATE %T SET mailKey = %s WHERE id = %d',
|
||||
$table->getTableName(),
|
||||
Filesystem::readRandomCharacters(20),
|
||||
$id);
|
||||
}
|
5
resources/sql/autopatches/20150804.ponder.question.1.sql
Normal file
5
resources/sql/autopatches/20150804.ponder.question.1.sql
Normal file
|
@ -0,0 +1,5 @@
|
|||
ALTER TABLE {$NAMESPACE}_ponder.ponder_question
|
||||
ADD editPolicy VARBINARY(64) NOT NULL;
|
||||
|
||||
ALTER TABLE {$NAMESPACE}_ponder.ponder_question
|
||||
ADD viewPolicy VARBINARY(64) NOT NULL;
|
2
resources/sql/autopatches/20150804.ponder.question.2.sql
Normal file
2
resources/sql/autopatches/20150804.ponder.question.2.sql
Normal file
|
@ -0,0 +1,2 @@
|
|||
UPDATE {$NAMESPACE}_ponder.ponder_question
|
||||
SET editPolicy = authorPHID WHERE editPolicy = '';
|
2
resources/sql/autopatches/20150804.ponder.question.3.sql
Normal file
2
resources/sql/autopatches/20150804.ponder.question.3.sql
Normal file
|
@ -0,0 +1,2 @@
|
|||
UPDATE {$NAMESPACE}_ponder.ponder_question
|
||||
SET viewPolicy = 'users' WHERE viewPolicy = '';
|
2
resources/sql/autopatches/20150804.ponder.spaces.4.sql
Normal file
2
resources/sql/autopatches/20150804.ponder.spaces.4.sql
Normal file
|
@ -0,0 +1,2 @@
|
|||
ALTER TABLE {$NAMESPACE}_ponder.ponder_question
|
||||
ADD spacePHID VARBINARY(64);
|
2
resources/sql/autopatches/20150805.paste.status.1.sql
Normal file
2
resources/sql/autopatches/20150805.paste.status.1.sql
Normal file
|
@ -0,0 +1,2 @@
|
|||
ALTER TABLE {$NAMESPACE}_pastebin.pastebin_paste
|
||||
ADD status VARCHAR(32) NOT NULL COLLATE {$COLLATE_TEXT};
|
2
resources/sql/autopatches/20150805.paste.status.2.sql
Normal file
2
resources/sql/autopatches/20150805.paste.status.2.sql
Normal file
|
@ -0,0 +1,2 @@
|
|||
UPDATE {$NAMESPACE}_pastebin.pastebin_paste
|
||||
SET status = 'active' WHERE status = '';
|
|
@ -203,7 +203,7 @@ foreach ($input as $key => $line) {
|
|||
}
|
||||
}
|
||||
|
||||
if (count ($symbols) >= $args->getArg('max-transaction')) {
|
||||
if (count($symbols) >= $args->getArg('max-transaction')) {
|
||||
try {
|
||||
echo pht(
|
||||
"Committing %s symbols...\n",
|
||||
|
|
|
@ -165,7 +165,6 @@ phutil_register_library_map(array(
|
|||
'AphrontTableView' => 'view/control/AphrontTableView.php',
|
||||
'AphrontTagView' => 'view/AphrontTagView.php',
|
||||
'AphrontTokenizerTemplateView' => 'view/control/AphrontTokenizerTemplateView.php',
|
||||
'AphrontTwoColumnView' => 'view/layout/AphrontTwoColumnView.php',
|
||||
'AphrontTypeaheadTemplateView' => 'view/control/AphrontTypeaheadTemplateView.php',
|
||||
'AphrontURIMapper' => 'aphront/AphrontURIMapper.php',
|
||||
'AphrontUnhandledExceptionResponse' => 'aphront/response/AphrontUnhandledExceptionResponse.php',
|
||||
|
@ -303,6 +302,7 @@ phutil_register_library_map(array(
|
|||
'DifferentialAuditorsField' => 'applications/differential/customfield/DifferentialAuditorsField.php',
|
||||
'DifferentialAuthorField' => 'applications/differential/customfield/DifferentialAuthorField.php',
|
||||
'DifferentialBlameRevisionField' => 'applications/differential/customfield/DifferentialBlameRevisionField.php',
|
||||
'DifferentialBlockHeraldAction' => 'applications/differential/herald/DifferentialBlockHeraldAction.php',
|
||||
'DifferentialBranchField' => 'applications/differential/customfield/DifferentialBranchField.php',
|
||||
'DifferentialChangeHeraldFieldGroup' => 'applications/differential/herald/DifferentialChangeHeraldFieldGroup.php',
|
||||
'DifferentialChangeType' => 'applications/differential/constants/DifferentialChangeType.php',
|
||||
|
@ -435,7 +435,12 @@ phutil_register_library_map(array(
|
|||
'DifferentialReviewer' => 'applications/differential/storage/DifferentialReviewer.php',
|
||||
'DifferentialReviewerForRevisionEdgeType' => 'applications/differential/edge/DifferentialReviewerForRevisionEdgeType.php',
|
||||
'DifferentialReviewerStatus' => 'applications/differential/constants/DifferentialReviewerStatus.php',
|
||||
'DifferentialReviewersAddBlockingReviewersHeraldAction' => 'applications/differential/herald/DifferentialReviewersAddBlockingReviewersHeraldAction.php',
|
||||
'DifferentialReviewersAddBlockingSelfHeraldAction' => 'applications/differential/herald/DifferentialReviewersAddBlockingSelfHeraldAction.php',
|
||||
'DifferentialReviewersAddReviewersHeraldAction' => 'applications/differential/herald/DifferentialReviewersAddReviewersHeraldAction.php',
|
||||
'DifferentialReviewersAddSelfHeraldAction' => 'applications/differential/herald/DifferentialReviewersAddSelfHeraldAction.php',
|
||||
'DifferentialReviewersField' => 'applications/differential/customfield/DifferentialReviewersField.php',
|
||||
'DifferentialReviewersHeraldAction' => 'applications/differential/herald/DifferentialReviewersHeraldAction.php',
|
||||
'DifferentialReviewersView' => 'applications/differential/view/DifferentialReviewersView.php',
|
||||
'DifferentialRevision' => 'applications/differential/storage/DifferentialRevision.php',
|
||||
'DifferentialRevisionAffectedFilesHeraldField' => 'applications/differential/herald/DifferentialRevisionAffectedFilesHeraldField.php',
|
||||
|
@ -493,6 +498,10 @@ phutil_register_library_map(array(
|
|||
'DifferentialUpdateUnitResultsConduitAPIMethod' => 'applications/differential/conduit/DifferentialUpdateUnitResultsConduitAPIMethod.php',
|
||||
'DifferentialViewPolicyField' => 'applications/differential/customfield/DifferentialViewPolicyField.php',
|
||||
'DiffusionAuditorDatasource' => 'applications/diffusion/typeahead/DiffusionAuditorDatasource.php',
|
||||
'DiffusionAuditorsAddAuditorsHeraldAction' => 'applications/diffusion/herald/DiffusionAuditorsAddAuditorsHeraldAction.php',
|
||||
'DiffusionAuditorsAddSelfHeraldAction' => 'applications/diffusion/herald/DiffusionAuditorsAddSelfHeraldAction.php',
|
||||
'DiffusionAuditorsHeraldAction' => 'applications/diffusion/herald/DiffusionAuditorsHeraldAction.php',
|
||||
'DiffusionBlockHeraldAction' => 'applications/diffusion/herald/DiffusionBlockHeraldAction.php',
|
||||
'DiffusionBranchQueryConduitAPIMethod' => 'applications/diffusion/conduit/DiffusionBranchQueryConduitAPIMethod.php',
|
||||
'DiffusionBranchTableController' => 'applications/diffusion/controller/DiffusionBranchTableController.php',
|
||||
'DiffusionBranchTableView' => 'applications/diffusion/view/DiffusionBranchTableView.php',
|
||||
|
@ -941,6 +950,7 @@ phutil_register_library_map(array(
|
|||
'HarbormasterBuildStepCoreCustomField' => 'applications/harbormaster/customfield/HarbormasterBuildStepCoreCustomField.php',
|
||||
'HarbormasterBuildStepCustomField' => 'applications/harbormaster/customfield/HarbormasterBuildStepCustomField.php',
|
||||
'HarbormasterBuildStepEditor' => 'applications/harbormaster/editor/HarbormasterBuildStepEditor.php',
|
||||
'HarbormasterBuildStepGroup' => 'applications/harbormaster/stepgroup/HarbormasterBuildStepGroup.php',
|
||||
'HarbormasterBuildStepImplementation' => 'applications/harbormaster/step/HarbormasterBuildStepImplementation.php',
|
||||
'HarbormasterBuildStepImplementationTestCase' => 'applications/harbormaster/step/__tests__/HarbormasterBuildStepImplementationTestCase.php',
|
||||
'HarbormasterBuildStepPHIDType' => 'applications/harbormaster/phid/HarbormasterBuildStepPHIDType.php',
|
||||
|
@ -958,6 +968,7 @@ phutil_register_library_map(array(
|
|||
'HarbormasterBuildWorker' => 'applications/harbormaster/worker/HarbormasterBuildWorker.php',
|
||||
'HarbormasterBuildable' => 'applications/harbormaster/storage/HarbormasterBuildable.php',
|
||||
'HarbormasterBuildableActionController' => 'applications/harbormaster/controller/HarbormasterBuildableActionController.php',
|
||||
'HarbormasterBuildableAdapterInterface' => 'applications/harbormaster/herald/HarbormasterBuildableAdapterInterface.php',
|
||||
'HarbormasterBuildableInterface' => 'applications/harbormaster/interface/HarbormasterBuildableInterface.php',
|
||||
'HarbormasterBuildableListController' => 'applications/harbormaster/controller/HarbormasterBuildableListController.php',
|
||||
'HarbormasterBuildablePHIDType' => 'applications/harbormaster/phid/HarbormasterBuildablePHIDType.php',
|
||||
|
@ -967,10 +978,12 @@ phutil_register_library_map(array(
|
|||
'HarbormasterBuildableTransactionEditor' => 'applications/harbormaster/editor/HarbormasterBuildableTransactionEditor.php',
|
||||
'HarbormasterBuildableTransactionQuery' => 'applications/harbormaster/query/HarbormasterBuildableTransactionQuery.php',
|
||||
'HarbormasterBuildableViewController' => 'applications/harbormaster/controller/HarbormasterBuildableViewController.php',
|
||||
'HarbormasterBuiltinBuildStepGroup' => 'applications/harbormaster/stepgroup/HarbormasterBuiltinBuildStepGroup.php',
|
||||
'HarbormasterCommandBuildStepImplementation' => 'applications/harbormaster/step/HarbormasterCommandBuildStepImplementation.php',
|
||||
'HarbormasterConduitAPIMethod' => 'applications/harbormaster/conduit/HarbormasterConduitAPIMethod.php',
|
||||
'HarbormasterController' => 'applications/harbormaster/controller/HarbormasterController.php',
|
||||
'HarbormasterDAO' => 'applications/harbormaster/storage/HarbormasterDAO.php',
|
||||
'HarbormasterExternalBuildStepGroup' => 'applications/harbormaster/stepgroup/HarbormasterExternalBuildStepGroup.php',
|
||||
'HarbormasterHTTPRequestBuildStepImplementation' => 'applications/harbormaster/step/HarbormasterHTTPRequestBuildStepImplementation.php',
|
||||
'HarbormasterLeaseHostBuildStepImplementation' => 'applications/harbormaster/step/HarbormasterLeaseHostBuildStepImplementation.php',
|
||||
'HarbormasterLintMessagesController' => 'applications/harbormaster/controller/HarbormasterLintMessagesController.php',
|
||||
|
@ -979,18 +992,22 @@ phutil_register_library_map(array(
|
|||
'HarbormasterManagementBuildWorkflow' => 'applications/harbormaster/management/HarbormasterManagementBuildWorkflow.php',
|
||||
'HarbormasterManagementUpdateWorkflow' => 'applications/harbormaster/management/HarbormasterManagementUpdateWorkflow.php',
|
||||
'HarbormasterManagementWorkflow' => 'applications/harbormaster/management/HarbormasterManagementWorkflow.php',
|
||||
'HarbormasterMessageType' => 'applications/harbormaster/engine/HarbormasterMessageType.php',
|
||||
'HarbormasterObject' => 'applications/harbormaster/storage/HarbormasterObject.php',
|
||||
'HarbormasterOtherBuildStepGroup' => 'applications/harbormaster/stepgroup/HarbormasterOtherBuildStepGroup.php',
|
||||
'HarbormasterPlanController' => 'applications/harbormaster/controller/HarbormasterPlanController.php',
|
||||
'HarbormasterPlanDisableController' => 'applications/harbormaster/controller/HarbormasterPlanDisableController.php',
|
||||
'HarbormasterPlanEditController' => 'applications/harbormaster/controller/HarbormasterPlanEditController.php',
|
||||
'HarbormasterPlanListController' => 'applications/harbormaster/controller/HarbormasterPlanListController.php',
|
||||
'HarbormasterPlanRunController' => 'applications/harbormaster/controller/HarbormasterPlanRunController.php',
|
||||
'HarbormasterPlanViewController' => 'applications/harbormaster/controller/HarbormasterPlanViewController.php',
|
||||
'HarbormasterPrototypeBuildStepGroup' => 'applications/harbormaster/stepgroup/HarbormasterPrototypeBuildStepGroup.php',
|
||||
'HarbormasterPublishFragmentBuildStepImplementation' => 'applications/harbormaster/step/HarbormasterPublishFragmentBuildStepImplementation.php',
|
||||
'HarbormasterQueryAutotargetsConduitAPIMethod' => 'applications/harbormaster/conduit/HarbormasterQueryAutotargetsConduitAPIMethod.php',
|
||||
'HarbormasterQueryBuildablesConduitAPIMethod' => 'applications/harbormaster/conduit/HarbormasterQueryBuildablesConduitAPIMethod.php',
|
||||
'HarbormasterQueryBuildsConduitAPIMethod' => 'applications/harbormaster/conduit/HarbormasterQueryBuildsConduitAPIMethod.php',
|
||||
'HarbormasterRemarkupRule' => 'applications/harbormaster/remarkup/HarbormasterRemarkupRule.php',
|
||||
'HarbormasterRunBuildPlansHeraldAction' => 'applications/harbormaster/herald/HarbormasterRunBuildPlansHeraldAction.php',
|
||||
'HarbormasterSchemaSpec' => 'applications/harbormaster/storage/HarbormasterSchemaSpec.php',
|
||||
'HarbormasterScratchTable' => 'applications/harbormaster/storage/HarbormasterScratchTable.php',
|
||||
'HarbormasterSendMessageConduitAPIMethod' => 'applications/harbormaster/conduit/HarbormasterSendMessageConduitAPIMethod.php',
|
||||
|
@ -1000,6 +1017,7 @@ phutil_register_library_map(array(
|
|||
'HarbormasterStepEditController' => 'applications/harbormaster/controller/HarbormasterStepEditController.php',
|
||||
'HarbormasterTargetEngine' => 'applications/harbormaster/engine/HarbormasterTargetEngine.php',
|
||||
'HarbormasterTargetWorker' => 'applications/harbormaster/worker/HarbormasterTargetWorker.php',
|
||||
'HarbormasterTestBuildStepGroup' => 'applications/harbormaster/stepgroup/HarbormasterTestBuildStepGroup.php',
|
||||
'HarbormasterThrowExceptionBuildStep' => 'applications/harbormaster/step/HarbormasterThrowExceptionBuildStep.php',
|
||||
'HarbormasterUIEventListener' => 'applications/harbormaster/event/HarbormasterUIEventListener.php',
|
||||
'HarbormasterUnitMessagesController' => 'applications/harbormaster/controller/HarbormasterUnitMessagesController.php',
|
||||
|
@ -1007,10 +1025,13 @@ phutil_register_library_map(array(
|
|||
'HarbormasterUploadArtifactBuildStepImplementation' => 'applications/harbormaster/step/HarbormasterUploadArtifactBuildStepImplementation.php',
|
||||
'HarbormasterWaitForPreviousBuildStepImplementation' => 'applications/harbormaster/step/HarbormasterWaitForPreviousBuildStepImplementation.php',
|
||||
'HarbormasterWorker' => 'applications/harbormaster/worker/HarbormasterWorker.php',
|
||||
'HeraldAction' => 'applications/herald/action/HeraldAction.php',
|
||||
'HeraldActionGroup' => 'applications/herald/action/HeraldActionGroup.php',
|
||||
'HeraldActionRecord' => 'applications/herald/storage/HeraldActionRecord.php',
|
||||
'HeraldAdapter' => 'applications/herald/adapter/HeraldAdapter.php',
|
||||
'HeraldAlwaysField' => 'applications/herald/field/HeraldAlwaysField.php',
|
||||
'HeraldAnotherRuleField' => 'applications/herald/field/HeraldAnotherRuleField.php',
|
||||
'HeraldApplicationActionGroup' => 'applications/herald/action/HeraldApplicationActionGroup.php',
|
||||
'HeraldApplyTranscript' => 'applications/herald/storage/transcript/HeraldApplyTranscript.php',
|
||||
'HeraldBasicFieldGroup' => 'applications/herald/field/HeraldBasicFieldGroup.php',
|
||||
'HeraldCommitAdapter' => 'applications/diffusion/herald/HeraldCommitAdapter.php',
|
||||
|
@ -1018,12 +1039,12 @@ phutil_register_library_map(array(
|
|||
'HeraldConditionTranscript' => 'applications/herald/storage/transcript/HeraldConditionTranscript.php',
|
||||
'HeraldContentSourceField' => 'applications/herald/field/HeraldContentSourceField.php',
|
||||
'HeraldController' => 'applications/herald/controller/HeraldController.php',
|
||||
'HeraldCustomAction' => 'applications/herald/extension/HeraldCustomAction.php',
|
||||
'HeraldDAO' => 'applications/herald/storage/HeraldDAO.php',
|
||||
'HeraldDifferentialAdapter' => 'applications/differential/herald/HeraldDifferentialAdapter.php',
|
||||
'HeraldDifferentialDiffAdapter' => 'applications/differential/herald/HeraldDifferentialDiffAdapter.php',
|
||||
'HeraldDifferentialRevisionAdapter' => 'applications/differential/herald/HeraldDifferentialRevisionAdapter.php',
|
||||
'HeraldDisableController' => 'applications/herald/controller/HeraldDisableController.php',
|
||||
'HeraldDoNothingAction' => 'applications/herald/action/HeraldDoNothingAction.php',
|
||||
'HeraldEditFieldGroup' => 'applications/herald/field/HeraldEditFieldGroup.php',
|
||||
'HeraldEffect' => 'applications/herald/engine/HeraldEffect.php',
|
||||
'HeraldEmptyFieldValue' => 'applications/herald/value/HeraldEmptyFieldValue.php',
|
||||
|
@ -1032,17 +1053,20 @@ phutil_register_library_map(array(
|
|||
'HeraldFieldGroup' => 'applications/herald/field/HeraldFieldGroup.php',
|
||||
'HeraldFieldTestCase' => 'applications/herald/field/__tests__/HeraldFieldTestCase.php',
|
||||
'HeraldFieldValue' => 'applications/herald/value/HeraldFieldValue.php',
|
||||
'HeraldGroup' => 'applications/herald/group/HeraldGroup.php',
|
||||
'HeraldInvalidActionException' => 'applications/herald/engine/exception/HeraldInvalidActionException.php',
|
||||
'HeraldInvalidConditionException' => 'applications/herald/engine/exception/HeraldInvalidConditionException.php',
|
||||
'HeraldManageGlobalRulesCapability' => 'applications/herald/capability/HeraldManageGlobalRulesCapability.php',
|
||||
'HeraldManiphestTaskAdapter' => 'applications/maniphest/herald/HeraldManiphestTaskAdapter.php',
|
||||
'HeraldNewController' => 'applications/herald/controller/HeraldNewController.php',
|
||||
'HeraldNewObjectField' => 'applications/herald/field/HeraldNewObjectField.php',
|
||||
'HeraldNotifyActionGroup' => 'applications/herald/action/HeraldNotifyActionGroup.php',
|
||||
'HeraldObjectTranscript' => 'applications/herald/storage/transcript/HeraldObjectTranscript.php',
|
||||
'HeraldPholioMockAdapter' => 'applications/pholio/herald/HeraldPholioMockAdapter.php',
|
||||
'HeraldPreCommitAdapter' => 'applications/diffusion/herald/HeraldPreCommitAdapter.php',
|
||||
'HeraldPreCommitContentAdapter' => 'applications/diffusion/herald/HeraldPreCommitContentAdapter.php',
|
||||
'HeraldPreCommitRefAdapter' => 'applications/diffusion/herald/HeraldPreCommitRefAdapter.php',
|
||||
'HeraldPreventActionGroup' => 'applications/herald/action/HeraldPreventActionGroup.php',
|
||||
'HeraldProjectsField' => 'applications/project/herald/HeraldProjectsField.php',
|
||||
'HeraldRecursiveConditionsException' => 'applications/herald/engine/exception/HeraldRecursiveConditionsException.php',
|
||||
'HeraldRelatedFieldGroup' => 'applications/herald/field/HeraldRelatedFieldGroup.php',
|
||||
|
@ -1065,6 +1089,7 @@ phutil_register_library_map(array(
|
|||
'HeraldSelectFieldValue' => 'applications/herald/value/HeraldSelectFieldValue.php',
|
||||
'HeraldSpaceField' => 'applications/spaces/herald/HeraldSpaceField.php',
|
||||
'HeraldSubscribersField' => 'applications/subscriptions/herald/HeraldSubscribersField.php',
|
||||
'HeraldSupportActionGroup' => 'applications/herald/action/HeraldSupportActionGroup.php',
|
||||
'HeraldSupportFieldGroup' => 'applications/herald/field/HeraldSupportFieldGroup.php',
|
||||
'HeraldTestConsoleController' => 'applications/herald/controller/HeraldTestConsoleController.php',
|
||||
'HeraldTextFieldValue' => 'applications/herald/value/HeraldTextFieldValue.php',
|
||||
|
@ -1077,6 +1102,7 @@ phutil_register_library_map(array(
|
|||
'HeraldTranscriptQuery' => 'applications/herald/query/HeraldTranscriptQuery.php',
|
||||
'HeraldTranscriptSearchEngine' => 'applications/herald/query/HeraldTranscriptSearchEngine.php',
|
||||
'HeraldTranscriptTestCase' => 'applications/herald/storage/__tests__/HeraldTranscriptTestCase.php',
|
||||
'HeraldUtilityActionGroup' => 'applications/herald/action/HeraldUtilityActionGroup.php',
|
||||
'Javelin' => 'infrastructure/javelin/Javelin.php',
|
||||
'JavelinReactorUIExample' => 'applications/uiexample/examples/JavelinReactorUIExample.php',
|
||||
'JavelinUIExample' => 'applications/uiexample/examples/JavelinUIExample.php',
|
||||
|
@ -1110,6 +1136,7 @@ phutil_register_library_map(array(
|
|||
'LegalpadMailReceiver' => 'applications/legalpad/mail/LegalpadMailReceiver.php',
|
||||
'LegalpadObjectNeedsSignatureEdgeType' => 'applications/legalpad/edge/LegalpadObjectNeedsSignatureEdgeType.php',
|
||||
'LegalpadReplyHandler' => 'applications/legalpad/mail/LegalpadReplyHandler.php',
|
||||
'LegalpadRequireSignatureHeraldAction' => 'applications/legalpad/herald/LegalpadRequireSignatureHeraldAction.php',
|
||||
'LegalpadSchemaSpec' => 'applications/legalpad/storage/LegalpadSchemaSpec.php',
|
||||
'LegalpadSignatureNeededByObjectEdgeType' => 'applications/legalpad/edge/LegalpadSignatureNeededByObjectEdgeType.php',
|
||||
'LegalpadTransaction' => 'applications/legalpad/storage/LegalpadTransaction.php',
|
||||
|
@ -1178,6 +1205,9 @@ phutil_register_library_map(array(
|
|||
'ManiphestStatusEmailCommand' => 'applications/maniphest/command/ManiphestStatusEmailCommand.php',
|
||||
'ManiphestSubpriorityController' => 'applications/maniphest/controller/ManiphestSubpriorityController.php',
|
||||
'ManiphestTask' => 'applications/maniphest/storage/ManiphestTask.php',
|
||||
'ManiphestTaskAssignHeraldAction' => 'applications/maniphest/herald/ManiphestTaskAssignHeraldAction.php',
|
||||
'ManiphestTaskAssignOtherHeraldAction' => 'applications/maniphest/herald/ManiphestTaskAssignOtherHeraldAction.php',
|
||||
'ManiphestTaskAssignSelfHeraldAction' => 'applications/maniphest/herald/ManiphestTaskAssignSelfHeraldAction.php',
|
||||
'ManiphestTaskAssigneeHeraldField' => 'applications/maniphest/herald/ManiphestTaskAssigneeHeraldField.php',
|
||||
'ManiphestTaskAuthorHeraldField' => 'applications/maniphest/herald/ManiphestTaskAuthorHeraldField.php',
|
||||
'ManiphestTaskAuthorPolicyRule' => 'applications/maniphest/policyrule/ManiphestTaskAuthorPolicyRule.php',
|
||||
|
@ -1631,10 +1661,12 @@ phutil_register_library_map(array(
|
|||
'PhabricatorBadgesEditor' => 'applications/badges/editor/PhabricatorBadgesEditor.php',
|
||||
'PhabricatorBadgesIcon' => 'applications/badges/icon/PhabricatorBadgesIcon.php',
|
||||
'PhabricatorBadgesListController' => 'applications/badges/controller/PhabricatorBadgesListController.php',
|
||||
'PhabricatorBadgesMailReceiver' => 'applications/badges/mail/PhabricatorBadgesMailReceiver.php',
|
||||
'PhabricatorBadgesPHIDType' => 'applications/badges/phid/PhabricatorBadgesPHIDType.php',
|
||||
'PhabricatorBadgesQuery' => 'applications/badges/query/PhabricatorBadgesQuery.php',
|
||||
'PhabricatorBadgesRecipientsListView' => 'applications/badges/view/PhabricatorBadgesRecipientsListView.php',
|
||||
'PhabricatorBadgesRemoveRecipientsController' => 'applications/badges/controller/PhabricatorBadgesRemoveRecipientsController.php',
|
||||
'PhabricatorBadgesReplyHandler' => 'applications/badges/mail/PhabricatorBadgesReplyHandler.php',
|
||||
'PhabricatorBadgesSchemaSpec' => 'applications/badges/storage/PhabricatorBadgesSchemaSpec.php',
|
||||
'PhabricatorBadgesSearchEngine' => 'applications/badges/query/PhabricatorBadgesSearchEngine.php',
|
||||
'PhabricatorBadgesTransaction' => 'applications/badges/storage/PhabricatorBadgesTransaction.php',
|
||||
|
@ -1830,6 +1862,7 @@ phutil_register_library_map(array(
|
|||
'PhabricatorCountdownEditController' => 'applications/countdown/controller/PhabricatorCountdownEditController.php',
|
||||
'PhabricatorCountdownEditor' => 'applications/countdown/editor/PhabricatorCountdownEditor.php',
|
||||
'PhabricatorCountdownListController' => 'applications/countdown/controller/PhabricatorCountdownListController.php',
|
||||
'PhabricatorCountdownMailReceiver' => 'applications/countdown/mail/PhabricatorCountdownMailReceiver.php',
|
||||
'PhabricatorCountdownQuery' => 'applications/countdown/query/PhabricatorCountdownQuery.php',
|
||||
'PhabricatorCountdownRemarkupRule' => 'applications/countdown/remarkup/PhabricatorCountdownRemarkupRule.php',
|
||||
'PhabricatorCountdownReplyHandler' => 'applications/countdown/mail/PhabricatorCountdownReplyHandler.php',
|
||||
|
@ -2099,6 +2132,7 @@ phutil_register_library_map(array(
|
|||
'PhabricatorFilesManagementWorkflow' => 'applications/files/management/PhabricatorFilesManagementWorkflow.php',
|
||||
'PhabricatorFilesOutboundRequestAction' => 'applications/files/action/PhabricatorFilesOutboundRequestAction.php',
|
||||
'PhabricatorFlag' => 'applications/flag/storage/PhabricatorFlag.php',
|
||||
'PhabricatorFlagAddFlagHeraldAction' => 'applications/flag/herald/PhabricatorFlagAddFlagHeraldAction.php',
|
||||
'PhabricatorFlagColor' => 'applications/flag/constants/PhabricatorFlagColor.php',
|
||||
'PhabricatorFlagConstants' => 'applications/flag/constants/PhabricatorFlagConstants.php',
|
||||
'PhabricatorFlagController' => 'applications/flag/controller/PhabricatorFlagController.php',
|
||||
|
@ -2222,6 +2256,7 @@ phutil_register_library_map(array(
|
|||
'PhabricatorMailManagementSendTestWorkflow' => 'applications/metamta/management/PhabricatorMailManagementSendTestWorkflow.php',
|
||||
'PhabricatorMailManagementShowInboundWorkflow' => 'applications/metamta/management/PhabricatorMailManagementShowInboundWorkflow.php',
|
||||
'PhabricatorMailManagementShowOutboundWorkflow' => 'applications/metamta/management/PhabricatorMailManagementShowOutboundWorkflow.php',
|
||||
'PhabricatorMailManagementVolumeWorkflow' => 'applications/metamta/management/PhabricatorMailManagementVolumeWorkflow.php',
|
||||
'PhabricatorMailManagementWorkflow' => 'applications/metamta/management/PhabricatorMailManagementWorkflow.php',
|
||||
'PhabricatorMailReceiver' => 'applications/metamta/receiver/PhabricatorMailReceiver.php',
|
||||
'PhabricatorMailReceiverTestCase' => 'applications/metamta/receiver/__tests__/PhabricatorMailReceiverTestCase.php',
|
||||
|
@ -2262,6 +2297,9 @@ phutil_register_library_map(array(
|
|||
'PhabricatorMetaMTADAO' => 'applications/metamta/storage/PhabricatorMetaMTADAO.php',
|
||||
'PhabricatorMetaMTAEmailBodyParser' => 'applications/metamta/parser/PhabricatorMetaMTAEmailBodyParser.php',
|
||||
'PhabricatorMetaMTAEmailBodyParserTestCase' => 'applications/metamta/parser/__tests__/PhabricatorMetaMTAEmailBodyParserTestCase.php',
|
||||
'PhabricatorMetaMTAEmailHeraldAction' => 'applications/metamta/herald/PhabricatorMetaMTAEmailHeraldAction.php',
|
||||
'PhabricatorMetaMTAEmailOthersHeraldAction' => 'applications/metamta/herald/PhabricatorMetaMTAEmailOthersHeraldAction.php',
|
||||
'PhabricatorMetaMTAEmailSelfHeraldAction' => 'applications/metamta/herald/PhabricatorMetaMTAEmailSelfHeraldAction.php',
|
||||
'PhabricatorMetaMTAErrorMailAction' => 'applications/metamta/action/PhabricatorMetaMTAErrorMailAction.php',
|
||||
'PhabricatorMetaMTAMail' => 'applications/metamta/storage/PhabricatorMetaMTAMail.php',
|
||||
'PhabricatorMetaMTAMailBody' => 'applications/metamta/view/PhabricatorMetaMTAMailBody.php',
|
||||
|
@ -2525,6 +2563,7 @@ phutil_register_library_map(array(
|
|||
'PhabricatorPolicyType' => 'applications/policy/constants/PhabricatorPolicyType.php',
|
||||
'PhabricatorPonderApplication' => 'applications/ponder/application/PhabricatorPonderApplication.php',
|
||||
'PhabricatorProject' => 'applications/project/storage/PhabricatorProject.php',
|
||||
'PhabricatorProjectAddHeraldAction' => 'applications/project/herald/PhabricatorProjectAddHeraldAction.php',
|
||||
'PhabricatorProjectApplication' => 'applications/project/application/PhabricatorProjectApplication.php',
|
||||
'PhabricatorProjectArchiveController' => 'applications/project/controller/PhabricatorProjectArchiveController.php',
|
||||
'PhabricatorProjectBoardController' => 'applications/project/controller/PhabricatorProjectBoardController.php',
|
||||
|
@ -2557,6 +2596,7 @@ phutil_register_library_map(array(
|
|||
'PhabricatorProjectEditPictureController' => 'applications/project/controller/PhabricatorProjectEditPictureController.php',
|
||||
'PhabricatorProjectEditorTestCase' => 'applications/project/editor/__tests__/PhabricatorProjectEditorTestCase.php',
|
||||
'PhabricatorProjectFeedController' => 'applications/project/controller/PhabricatorProjectFeedController.php',
|
||||
'PhabricatorProjectHeraldAction' => 'applications/project/herald/PhabricatorProjectHeraldAction.php',
|
||||
'PhabricatorProjectIcon' => 'applications/project/icon/PhabricatorProjectIcon.php',
|
||||
'PhabricatorProjectInterface' => 'applications/project/interface/PhabricatorProjectInterface.php',
|
||||
'PhabricatorProjectListController' => 'applications/project/controller/PhabricatorProjectListController.php',
|
||||
|
@ -2578,6 +2618,7 @@ phutil_register_library_map(array(
|
|||
'PhabricatorProjectProjectHasObjectEdgeType' => 'applications/project/edge/PhabricatorProjectProjectHasObjectEdgeType.php',
|
||||
'PhabricatorProjectProjectPHIDType' => 'applications/project/phid/PhabricatorProjectProjectPHIDType.php',
|
||||
'PhabricatorProjectQuery' => 'applications/project/query/PhabricatorProjectQuery.php',
|
||||
'PhabricatorProjectRemoveHeraldAction' => 'applications/project/herald/PhabricatorProjectRemoveHeraldAction.php',
|
||||
'PhabricatorProjectSchemaSpec' => 'applications/project/storage/PhabricatorProjectSchemaSpec.php',
|
||||
'PhabricatorProjectSearchEngine' => 'applications/project/query/PhabricatorProjectSearchEngine.php',
|
||||
'PhabricatorProjectSearchField' => 'applications/project/searchfield/PhabricatorProjectSearchField.php',
|
||||
|
@ -2789,11 +2830,13 @@ phutil_register_library_map(array(
|
|||
'PhabricatorSlowvoteEditController' => 'applications/slowvote/controller/PhabricatorSlowvoteEditController.php',
|
||||
'PhabricatorSlowvoteEditor' => 'applications/slowvote/editor/PhabricatorSlowvoteEditor.php',
|
||||
'PhabricatorSlowvoteListController' => 'applications/slowvote/controller/PhabricatorSlowvoteListController.php',
|
||||
'PhabricatorSlowvoteMailReceiver' => 'applications/slowvote/mail/PhabricatorSlowvoteMailReceiver.php',
|
||||
'PhabricatorSlowvoteOption' => 'applications/slowvote/storage/PhabricatorSlowvoteOption.php',
|
||||
'PhabricatorSlowvotePoll' => 'applications/slowvote/storage/PhabricatorSlowvotePoll.php',
|
||||
'PhabricatorSlowvotePollController' => 'applications/slowvote/controller/PhabricatorSlowvotePollController.php',
|
||||
'PhabricatorSlowvotePollPHIDType' => 'applications/slowvote/phid/PhabricatorSlowvotePollPHIDType.php',
|
||||
'PhabricatorSlowvoteQuery' => 'applications/slowvote/query/PhabricatorSlowvoteQuery.php',
|
||||
'PhabricatorSlowvoteReplyHandler' => 'applications/slowvote/mail/PhabricatorSlowvoteReplyHandler.php',
|
||||
'PhabricatorSlowvoteSchemaSpec' => 'applications/slowvote/storage/PhabricatorSlowvoteSchemaSpec.php',
|
||||
'PhabricatorSlowvoteSearchEngine' => 'applications/slowvote/query/PhabricatorSlowvoteSearchEngine.php',
|
||||
'PhabricatorSlowvoteTransaction' => 'applications/slowvote/storage/PhabricatorSlowvoteTransaction.php',
|
||||
|
@ -2866,10 +2909,15 @@ phutil_register_library_map(array(
|
|||
'PhabricatorSubscribedToObjectEdgeType' => 'applications/transactions/edges/PhabricatorSubscribedToObjectEdgeType.php',
|
||||
'PhabricatorSubscribersQuery' => 'applications/subscriptions/query/PhabricatorSubscribersQuery.php',
|
||||
'PhabricatorSubscriptionTriggerClock' => 'infrastructure/daemon/workers/clock/PhabricatorSubscriptionTriggerClock.php',
|
||||
'PhabricatorSubscriptionsAddSelfHeraldAction' => 'applications/subscriptions/herald/PhabricatorSubscriptionsAddSelfHeraldAction.php',
|
||||
'PhabricatorSubscriptionsAddSubscribersHeraldAction' => 'applications/subscriptions/herald/PhabricatorSubscriptionsAddSubscribersHeraldAction.php',
|
||||
'PhabricatorSubscriptionsApplication' => 'applications/subscriptions/application/PhabricatorSubscriptionsApplication.php',
|
||||
'PhabricatorSubscriptionsEditController' => 'applications/subscriptions/controller/PhabricatorSubscriptionsEditController.php',
|
||||
'PhabricatorSubscriptionsEditor' => 'applications/subscriptions/editor/PhabricatorSubscriptionsEditor.php',
|
||||
'PhabricatorSubscriptionsHeraldAction' => 'applications/subscriptions/herald/PhabricatorSubscriptionsHeraldAction.php',
|
||||
'PhabricatorSubscriptionsListController' => 'applications/subscriptions/controller/PhabricatorSubscriptionsListController.php',
|
||||
'PhabricatorSubscriptionsRemoveSelfHeraldAction' => 'applications/subscriptions/herald/PhabricatorSubscriptionsRemoveSelfHeraldAction.php',
|
||||
'PhabricatorSubscriptionsRemoveSubscribersHeraldAction' => 'applications/subscriptions/herald/PhabricatorSubscriptionsRemoveSubscribersHeraldAction.php',
|
||||
'PhabricatorSubscriptionsSubscribeEmailCommand' => 'applications/subscriptions/command/PhabricatorSubscriptionsSubscribeEmailCommand.php',
|
||||
'PhabricatorSubscriptionsSubscribersPolicyRule' => 'applications/subscriptions/policyrule/PhabricatorSubscriptionsSubscribersPolicyRule.php',
|
||||
'PhabricatorSubscriptionsTransactionController' => 'applications/subscriptions/controller/PhabricatorSubscriptionsTransactionController.php',
|
||||
|
@ -2937,7 +2985,6 @@ phutil_register_library_map(array(
|
|||
'PhabricatorTrivialTestCase' => 'infrastructure/testing/__tests__/PhabricatorTrivialTestCase.php',
|
||||
'PhabricatorTwitchAuthProvider' => 'applications/auth/provider/PhabricatorTwitchAuthProvider.php',
|
||||
'PhabricatorTwitterAuthProvider' => 'applications/auth/provider/PhabricatorTwitterAuthProvider.php',
|
||||
'PhabricatorTwoColumnUIExample' => 'applications/uiexample/examples/PhabricatorTwoColumnUIExample.php',
|
||||
'PhabricatorTypeaheadApplication' => 'applications/typeahead/application/PhabricatorTypeaheadApplication.php',
|
||||
'PhabricatorTypeaheadCompositeDatasource' => 'applications/typeahead/datasource/PhabricatorTypeaheadCompositeDatasource.php',
|
||||
'PhabricatorTypeaheadDatasource' => 'applications/typeahead/datasource/PhabricatorTypeaheadDatasource.php',
|
||||
|
@ -3357,6 +3404,8 @@ phutil_register_library_map(array(
|
|||
'PonderEditor' => 'applications/ponder/editor/PonderEditor.php',
|
||||
'PonderQuestion' => 'applications/ponder/storage/PonderQuestion.php',
|
||||
'PonderQuestionCommentController' => 'applications/ponder/controller/PonderQuestionCommentController.php',
|
||||
'PonderQuestionDefaultEditCapability' => 'applications/ponder/capability/PonderQuestionDefaultEditCapability.php',
|
||||
'PonderQuestionDefaultViewCapability' => 'applications/ponder/capability/PonderQuestionDefaultViewCapability.php',
|
||||
'PonderQuestionEditController' => 'applications/ponder/controller/PonderQuestionEditController.php',
|
||||
'PonderQuestionEditor' => 'applications/ponder/editor/PonderQuestionEditor.php',
|
||||
'PonderQuestionHasVotingUserEdgeType' => 'applications/ponder/edge/PonderQuestionHasVotingUserEdgeType.php',
|
||||
|
@ -3716,7 +3765,6 @@ phutil_register_library_map(array(
|
|||
'AphrontTableView' => 'AphrontView',
|
||||
'AphrontTagView' => 'AphrontView',
|
||||
'AphrontTokenizerTemplateView' => 'AphrontView',
|
||||
'AphrontTwoColumnView' => 'AphrontView',
|
||||
'AphrontTypeaheadTemplateView' => 'AphrontView',
|
||||
'AphrontURIMapper' => 'Phobject',
|
||||
'AphrontUnhandledExceptionResponse' => 'AphrontStandaloneHTMLResponse',
|
||||
|
@ -3868,6 +3916,7 @@ phutil_register_library_map(array(
|
|||
'DifferentialAuditorsField' => 'DifferentialStoredCustomField',
|
||||
'DifferentialAuthorField' => 'DifferentialCustomField',
|
||||
'DifferentialBlameRevisionField' => 'DifferentialStoredCustomField',
|
||||
'DifferentialBlockHeraldAction' => 'HeraldAction',
|
||||
'DifferentialBranchField' => 'DifferentialCustomField',
|
||||
'DifferentialChangeHeraldFieldGroup' => 'HeraldFieldGroup',
|
||||
'DifferentialChangeType' => 'Phobject',
|
||||
|
@ -4015,7 +4064,12 @@ phutil_register_library_map(array(
|
|||
'DifferentialReviewer' => 'Phobject',
|
||||
'DifferentialReviewerForRevisionEdgeType' => 'PhabricatorEdgeType',
|
||||
'DifferentialReviewerStatus' => 'Phobject',
|
||||
'DifferentialReviewersAddBlockingReviewersHeraldAction' => 'DifferentialReviewersHeraldAction',
|
||||
'DifferentialReviewersAddBlockingSelfHeraldAction' => 'DifferentialReviewersHeraldAction',
|
||||
'DifferentialReviewersAddReviewersHeraldAction' => 'DifferentialReviewersHeraldAction',
|
||||
'DifferentialReviewersAddSelfHeraldAction' => 'DifferentialReviewersHeraldAction',
|
||||
'DifferentialReviewersField' => 'DifferentialCoreCustomField',
|
||||
'DifferentialReviewersHeraldAction' => 'HeraldAction',
|
||||
'DifferentialReviewersView' => 'AphrontView',
|
||||
'DifferentialRevision' => array(
|
||||
'DifferentialDAO',
|
||||
|
@ -4087,6 +4141,10 @@ phutil_register_library_map(array(
|
|||
'DifferentialUpdateUnitResultsConduitAPIMethod' => 'DifferentialConduitAPIMethod',
|
||||
'DifferentialViewPolicyField' => 'DifferentialCoreCustomField',
|
||||
'DiffusionAuditorDatasource' => 'PhabricatorTypeaheadCompositeDatasource',
|
||||
'DiffusionAuditorsAddAuditorsHeraldAction' => 'DiffusionAuditorsHeraldAction',
|
||||
'DiffusionAuditorsAddSelfHeraldAction' => 'DiffusionAuditorsHeraldAction',
|
||||
'DiffusionAuditorsHeraldAction' => 'HeraldAction',
|
||||
'DiffusionBlockHeraldAction' => 'HeraldAction',
|
||||
'DiffusionBranchQueryConduitAPIMethod' => 'DiffusionQueryConduitAPIMethod',
|
||||
'DiffusionBranchTableController' => 'DiffusionController',
|
||||
'DiffusionBranchTableView' => 'DiffusionView',
|
||||
|
@ -4606,6 +4664,7 @@ phutil_register_library_map(array(
|
|||
),
|
||||
'HarbormasterBuildStepCustomField' => 'PhabricatorCustomField',
|
||||
'HarbormasterBuildStepEditor' => 'PhabricatorApplicationTransactionEditor',
|
||||
'HarbormasterBuildStepGroup' => 'Phobject',
|
||||
'HarbormasterBuildStepImplementation' => 'Phobject',
|
||||
'HarbormasterBuildStepImplementationTestCase' => 'PhabricatorTestCase',
|
||||
'HarbormasterBuildStepPHIDType' => 'PhabricatorPHIDType',
|
||||
|
@ -4639,10 +4698,12 @@ phutil_register_library_map(array(
|
|||
'HarbormasterBuildableTransactionEditor' => 'PhabricatorApplicationTransactionEditor',
|
||||
'HarbormasterBuildableTransactionQuery' => 'PhabricatorApplicationTransactionQuery',
|
||||
'HarbormasterBuildableViewController' => 'HarbormasterController',
|
||||
'HarbormasterBuiltinBuildStepGroup' => 'HarbormasterBuildStepGroup',
|
||||
'HarbormasterCommandBuildStepImplementation' => 'HarbormasterBuildStepImplementation',
|
||||
'HarbormasterConduitAPIMethod' => 'ConduitAPIMethod',
|
||||
'HarbormasterController' => 'PhabricatorController',
|
||||
'HarbormasterDAO' => 'PhabricatorLiskDAO',
|
||||
'HarbormasterExternalBuildStepGroup' => 'HarbormasterBuildStepGroup',
|
||||
'HarbormasterHTTPRequestBuildStepImplementation' => 'HarbormasterBuildStepImplementation',
|
||||
'HarbormasterLeaseHostBuildStepImplementation' => 'HarbormasterBuildStepImplementation',
|
||||
'HarbormasterLintMessagesController' => 'HarbormasterController',
|
||||
|
@ -4651,18 +4712,22 @@ phutil_register_library_map(array(
|
|||
'HarbormasterManagementBuildWorkflow' => 'HarbormasterManagementWorkflow',
|
||||
'HarbormasterManagementUpdateWorkflow' => 'HarbormasterManagementWorkflow',
|
||||
'HarbormasterManagementWorkflow' => 'PhabricatorManagementWorkflow',
|
||||
'HarbormasterMessageType' => 'Phobject',
|
||||
'HarbormasterObject' => 'HarbormasterDAO',
|
||||
'HarbormasterOtherBuildStepGroup' => 'HarbormasterBuildStepGroup',
|
||||
'HarbormasterPlanController' => 'HarbormasterController',
|
||||
'HarbormasterPlanDisableController' => 'HarbormasterPlanController',
|
||||
'HarbormasterPlanEditController' => 'HarbormasterPlanController',
|
||||
'HarbormasterPlanListController' => 'HarbormasterPlanController',
|
||||
'HarbormasterPlanRunController' => 'HarbormasterController',
|
||||
'HarbormasterPlanViewController' => 'HarbormasterPlanController',
|
||||
'HarbormasterPrototypeBuildStepGroup' => 'HarbormasterBuildStepGroup',
|
||||
'HarbormasterPublishFragmentBuildStepImplementation' => 'HarbormasterBuildStepImplementation',
|
||||
'HarbormasterQueryAutotargetsConduitAPIMethod' => 'HarbormasterConduitAPIMethod',
|
||||
'HarbormasterQueryBuildablesConduitAPIMethod' => 'HarbormasterConduitAPIMethod',
|
||||
'HarbormasterQueryBuildsConduitAPIMethod' => 'HarbormasterConduitAPIMethod',
|
||||
'HarbormasterRemarkupRule' => 'PhabricatorObjectRemarkupRule',
|
||||
'HarbormasterRunBuildPlansHeraldAction' => 'HeraldAction',
|
||||
'HarbormasterSchemaSpec' => 'PhabricatorConfigSchemaSpec',
|
||||
'HarbormasterScratchTable' => 'HarbormasterDAO',
|
||||
'HarbormasterSendMessageConduitAPIMethod' => 'HarbormasterConduitAPIMethod',
|
||||
|
@ -4672,6 +4737,7 @@ phutil_register_library_map(array(
|
|||
'HarbormasterStepEditController' => 'HarbormasterController',
|
||||
'HarbormasterTargetEngine' => 'Phobject',
|
||||
'HarbormasterTargetWorker' => 'HarbormasterWorker',
|
||||
'HarbormasterTestBuildStepGroup' => 'HarbormasterBuildStepGroup',
|
||||
'HarbormasterThrowExceptionBuildStep' => 'HarbormasterBuildStepImplementation',
|
||||
'HarbormasterUIEventListener' => 'PhabricatorEventListener',
|
||||
'HarbormasterUnitMessagesController' => 'HarbormasterController',
|
||||
|
@ -4679,42 +4745,54 @@ phutil_register_library_map(array(
|
|||
'HarbormasterUploadArtifactBuildStepImplementation' => 'HarbormasterBuildStepImplementation',
|
||||
'HarbormasterWaitForPreviousBuildStepImplementation' => 'HarbormasterBuildStepImplementation',
|
||||
'HarbormasterWorker' => 'PhabricatorWorker',
|
||||
'HeraldAction' => 'Phobject',
|
||||
'HeraldActionGroup' => 'HeraldGroup',
|
||||
'HeraldActionRecord' => 'HeraldDAO',
|
||||
'HeraldAdapter' => 'Phobject',
|
||||
'HeraldAlwaysField' => 'HeraldField',
|
||||
'HeraldAnotherRuleField' => 'HeraldField',
|
||||
'HeraldApplicationActionGroup' => 'HeraldActionGroup',
|
||||
'HeraldApplyTranscript' => 'Phobject',
|
||||
'HeraldBasicFieldGroup' => 'HeraldFieldGroup',
|
||||
'HeraldCommitAdapter' => 'HeraldAdapter',
|
||||
'HeraldCommitAdapter' => array(
|
||||
'HeraldAdapter',
|
||||
'HarbormasterBuildableAdapterInterface',
|
||||
),
|
||||
'HeraldCondition' => 'HeraldDAO',
|
||||
'HeraldConditionTranscript' => 'Phobject',
|
||||
'HeraldContentSourceField' => 'HeraldField',
|
||||
'HeraldController' => 'PhabricatorController',
|
||||
'HeraldCustomAction' => 'Phobject',
|
||||
'HeraldDAO' => 'PhabricatorLiskDAO',
|
||||
'HeraldDifferentialAdapter' => 'HeraldAdapter',
|
||||
'HeraldDifferentialDiffAdapter' => 'HeraldDifferentialAdapter',
|
||||
'HeraldDifferentialRevisionAdapter' => 'HeraldDifferentialAdapter',
|
||||
'HeraldDifferentialRevisionAdapter' => array(
|
||||
'HeraldDifferentialAdapter',
|
||||
'HarbormasterBuildableAdapterInterface',
|
||||
),
|
||||
'HeraldDisableController' => 'HeraldController',
|
||||
'HeraldDoNothingAction' => 'HeraldAction',
|
||||
'HeraldEditFieldGroup' => 'HeraldFieldGroup',
|
||||
'HeraldEffect' => 'Phobject',
|
||||
'HeraldEmptyFieldValue' => 'HeraldFieldValue',
|
||||
'HeraldEngine' => 'Phobject',
|
||||
'HeraldField' => 'Phobject',
|
||||
'HeraldFieldGroup' => 'Phobject',
|
||||
'HeraldFieldGroup' => 'HeraldGroup',
|
||||
'HeraldFieldTestCase' => 'PhutilTestCase',
|
||||
'HeraldFieldValue' => 'Phobject',
|
||||
'HeraldGroup' => 'Phobject',
|
||||
'HeraldInvalidActionException' => 'Exception',
|
||||
'HeraldInvalidConditionException' => 'Exception',
|
||||
'HeraldManageGlobalRulesCapability' => 'PhabricatorPolicyCapability',
|
||||
'HeraldManiphestTaskAdapter' => 'HeraldAdapter',
|
||||
'HeraldNewController' => 'HeraldController',
|
||||
'HeraldNewObjectField' => 'HeraldField',
|
||||
'HeraldNotifyActionGroup' => 'HeraldActionGroup',
|
||||
'HeraldObjectTranscript' => 'Phobject',
|
||||
'HeraldPholioMockAdapter' => 'HeraldAdapter',
|
||||
'HeraldPreCommitAdapter' => 'HeraldAdapter',
|
||||
'HeraldPreCommitContentAdapter' => 'HeraldPreCommitAdapter',
|
||||
'HeraldPreCommitRefAdapter' => 'HeraldPreCommitAdapter',
|
||||
'HeraldPreventActionGroup' => 'HeraldActionGroup',
|
||||
'HeraldProjectsField' => 'HeraldField',
|
||||
'HeraldRecursiveConditionsException' => 'Exception',
|
||||
'HeraldRelatedFieldGroup' => 'HeraldFieldGroup',
|
||||
|
@ -4743,6 +4821,7 @@ phutil_register_library_map(array(
|
|||
'HeraldSelectFieldValue' => 'HeraldFieldValue',
|
||||
'HeraldSpaceField' => 'HeraldField',
|
||||
'HeraldSubscribersField' => 'HeraldField',
|
||||
'HeraldSupportActionGroup' => 'HeraldActionGroup',
|
||||
'HeraldSupportFieldGroup' => 'HeraldFieldGroup',
|
||||
'HeraldTestConsoleController' => 'HeraldController',
|
||||
'HeraldTextFieldValue' => 'HeraldFieldValue',
|
||||
|
@ -4759,6 +4838,7 @@ phutil_register_library_map(array(
|
|||
'HeraldTranscriptQuery' => 'PhabricatorCursorPagedPolicyAwareQuery',
|
||||
'HeraldTranscriptSearchEngine' => 'PhabricatorApplicationSearchEngine',
|
||||
'HeraldTranscriptTestCase' => 'PhabricatorTestCase',
|
||||
'HeraldUtilityActionGroup' => 'HeraldActionGroup',
|
||||
'Javelin' => 'Phobject',
|
||||
'JavelinReactorUIExample' => 'PhabricatorUIExample',
|
||||
'JavelinUIExample' => 'PhabricatorUIExample',
|
||||
|
@ -4804,6 +4884,7 @@ phutil_register_library_map(array(
|
|||
'LegalpadMailReceiver' => 'PhabricatorObjectMailReceiver',
|
||||
'LegalpadObjectNeedsSignatureEdgeType' => 'PhabricatorEdgeType',
|
||||
'LegalpadReplyHandler' => 'PhabricatorApplicationTransactionReplyHandler',
|
||||
'LegalpadRequireSignatureHeraldAction' => 'HeraldAction',
|
||||
'LegalpadSchemaSpec' => 'PhabricatorConfigSchemaSpec',
|
||||
'LegalpadSignatureNeededByObjectEdgeType' => 'PhabricatorEdgeType',
|
||||
'LegalpadTransaction' => 'PhabricatorApplicationTransaction',
|
||||
|
@ -4889,6 +4970,9 @@ phutil_register_library_map(array(
|
|||
'PhabricatorProjectInterface',
|
||||
'PhabricatorSpacesInterface',
|
||||
),
|
||||
'ManiphestTaskAssignHeraldAction' => 'HeraldAction',
|
||||
'ManiphestTaskAssignOtherHeraldAction' => 'ManiphestTaskAssignHeraldAction',
|
||||
'ManiphestTaskAssignSelfHeraldAction' => 'ManiphestTaskAssignHeraldAction',
|
||||
'ManiphestTaskAssigneeHeraldField' => 'ManiphestTaskHeraldField',
|
||||
'ManiphestTaskAuthorHeraldField' => 'ManiphestTaskHeraldField',
|
||||
'ManiphestTaskAuthorPolicyRule' => 'PhabricatorPolicyRule',
|
||||
|
@ -5115,6 +5199,7 @@ phutil_register_library_map(array(
|
|||
'PhabricatorApplicationTransactionInterface',
|
||||
'PhabricatorPolicyInterface',
|
||||
'PhabricatorFlaggableInterface',
|
||||
'PhabricatorSubscribableInterface',
|
||||
'PhabricatorDestructibleInterface',
|
||||
'PhabricatorSpacesInterface',
|
||||
),
|
||||
|
@ -5388,6 +5473,7 @@ phutil_register_library_map(array(
|
|||
'PhabricatorPolicyInterface',
|
||||
'PhabricatorApplicationTransactionInterface',
|
||||
'PhabricatorSubscribableInterface',
|
||||
'PhabricatorTokenReceiverInterface',
|
||||
'PhabricatorFlaggableInterface',
|
||||
'PhabricatorDestructibleInterface',
|
||||
),
|
||||
|
@ -5402,10 +5488,12 @@ phutil_register_library_map(array(
|
|||
'PhabricatorBadgesEditor' => 'PhabricatorApplicationTransactionEditor',
|
||||
'PhabricatorBadgesIcon' => 'Phobject',
|
||||
'PhabricatorBadgesListController' => 'PhabricatorBadgesController',
|
||||
'PhabricatorBadgesMailReceiver' => 'PhabricatorObjectMailReceiver',
|
||||
'PhabricatorBadgesPHIDType' => 'PhabricatorPHIDType',
|
||||
'PhabricatorBadgesQuery' => 'PhabricatorCursorPagedPolicyAwareQuery',
|
||||
'PhabricatorBadgesRecipientsListView' => 'AphrontTagView',
|
||||
'PhabricatorBadgesRemoveRecipientsController' => 'PhabricatorBadgesController',
|
||||
'PhabricatorBadgesReplyHandler' => 'PhabricatorApplicationTransactionReplyHandler',
|
||||
'PhabricatorBadgesSchemaSpec' => 'PhabricatorConfigSchemaSpec',
|
||||
'PhabricatorBadgesSearchEngine' => 'PhabricatorApplicationSearchEngine',
|
||||
'PhabricatorBadgesTransaction' => 'PhabricatorApplicationTransaction',
|
||||
|
@ -5644,6 +5732,7 @@ phutil_register_library_map(array(
|
|||
'PhabricatorCountdownEditController' => 'PhabricatorCountdownController',
|
||||
'PhabricatorCountdownEditor' => 'PhabricatorApplicationTransactionEditor',
|
||||
'PhabricatorCountdownListController' => 'PhabricatorCountdownController',
|
||||
'PhabricatorCountdownMailReceiver' => 'PhabricatorObjectMailReceiver',
|
||||
'PhabricatorCountdownQuery' => 'PhabricatorCursorPagedPolicyAwareQuery',
|
||||
'PhabricatorCountdownRemarkupRule' => 'PhabricatorObjectRemarkupRule',
|
||||
'PhabricatorCountdownReplyHandler' => 'PhabricatorApplicationTransactionReplyHandler',
|
||||
|
@ -5918,6 +6007,7 @@ phutil_register_library_map(array(
|
|||
'PhabricatorSubscribableInterface',
|
||||
'PhabricatorApplicationTransactionInterface',
|
||||
'PhabricatorFlaggableInterface',
|
||||
'PhabricatorTokenReceiverInterface',
|
||||
'PhabricatorPolicyInterface',
|
||||
),
|
||||
'PhabricatorFileImageTransform' => 'PhabricatorFileTransform',
|
||||
|
@ -5962,6 +6052,7 @@ phutil_register_library_map(array(
|
|||
'PhabricatorFlagDAO',
|
||||
'PhabricatorPolicyInterface',
|
||||
),
|
||||
'PhabricatorFlagAddFlagHeraldAction' => 'HeraldAction',
|
||||
'PhabricatorFlagColor' => 'PhabricatorFlagConstants',
|
||||
'PhabricatorFlagConstants' => 'Phobject',
|
||||
'PhabricatorFlagController' => 'PhabricatorController',
|
||||
|
@ -6090,6 +6181,7 @@ phutil_register_library_map(array(
|
|||
'PhabricatorMailManagementSendTestWorkflow' => 'PhabricatorMailManagementWorkflow',
|
||||
'PhabricatorMailManagementShowInboundWorkflow' => 'PhabricatorMailManagementWorkflow',
|
||||
'PhabricatorMailManagementShowOutboundWorkflow' => 'PhabricatorMailManagementWorkflow',
|
||||
'PhabricatorMailManagementVolumeWorkflow' => 'PhabricatorMailManagementWorkflow',
|
||||
'PhabricatorMailManagementWorkflow' => 'PhabricatorManagementWorkflow',
|
||||
'PhabricatorMailReceiver' => 'Phobject',
|
||||
'PhabricatorMailReceiverTestCase' => 'PhabricatorTestCase',
|
||||
|
@ -6137,6 +6229,9 @@ phutil_register_library_map(array(
|
|||
'PhabricatorMetaMTADAO' => 'PhabricatorLiskDAO',
|
||||
'PhabricatorMetaMTAEmailBodyParser' => 'Phobject',
|
||||
'PhabricatorMetaMTAEmailBodyParserTestCase' => 'PhabricatorTestCase',
|
||||
'PhabricatorMetaMTAEmailHeraldAction' => 'HeraldAction',
|
||||
'PhabricatorMetaMTAEmailOthersHeraldAction' => 'PhabricatorMetaMTAEmailHeraldAction',
|
||||
'PhabricatorMetaMTAEmailSelfHeraldAction' => 'PhabricatorMetaMTAEmailHeraldAction',
|
||||
'PhabricatorMetaMTAErrorMailAction' => 'PhabricatorSystemAction',
|
||||
'PhabricatorMetaMTAMail' => array(
|
||||
'PhabricatorMetaMTADAO',
|
||||
|
@ -6457,6 +6552,7 @@ phutil_register_library_map(array(
|
|||
'PhabricatorCustomFieldInterface',
|
||||
'PhabricatorDestructibleInterface',
|
||||
),
|
||||
'PhabricatorProjectAddHeraldAction' => 'PhabricatorProjectHeraldAction',
|
||||
'PhabricatorProjectApplication' => 'PhabricatorApplication',
|
||||
'PhabricatorProjectArchiveController' => 'PhabricatorProjectController',
|
||||
'PhabricatorProjectBoardController' => 'PhabricatorProjectController',
|
||||
|
@ -6500,6 +6596,7 @@ phutil_register_library_map(array(
|
|||
'PhabricatorProjectEditPictureController' => 'PhabricatorProjectController',
|
||||
'PhabricatorProjectEditorTestCase' => 'PhabricatorTestCase',
|
||||
'PhabricatorProjectFeedController' => 'PhabricatorProjectController',
|
||||
'PhabricatorProjectHeraldAction' => 'HeraldAction',
|
||||
'PhabricatorProjectIcon' => 'Phobject',
|
||||
'PhabricatorProjectListController' => 'PhabricatorProjectController',
|
||||
'PhabricatorProjectLogicalAndDatasource' => 'PhabricatorTypeaheadCompositeDatasource',
|
||||
|
@ -6520,6 +6617,7 @@ phutil_register_library_map(array(
|
|||
'PhabricatorProjectProjectHasObjectEdgeType' => 'PhabricatorEdgeType',
|
||||
'PhabricatorProjectProjectPHIDType' => 'PhabricatorPHIDType',
|
||||
'PhabricatorProjectQuery' => 'PhabricatorCursorPagedPolicyAwareQuery',
|
||||
'PhabricatorProjectRemoveHeraldAction' => 'PhabricatorProjectHeraldAction',
|
||||
'PhabricatorProjectSchemaSpec' => 'PhabricatorConfigSchemaSpec',
|
||||
'PhabricatorProjectSearchEngine' => 'PhabricatorApplicationSearchEngine',
|
||||
'PhabricatorProjectSearchField' => 'PhabricatorSearchTokenizerField',
|
||||
|
@ -6774,6 +6872,7 @@ phutil_register_library_map(array(
|
|||
'PhabricatorSlowvoteEditController' => 'PhabricatorSlowvoteController',
|
||||
'PhabricatorSlowvoteEditor' => 'PhabricatorApplicationTransactionEditor',
|
||||
'PhabricatorSlowvoteListController' => 'PhabricatorSlowvoteController',
|
||||
'PhabricatorSlowvoteMailReceiver' => 'PhabricatorObjectMailReceiver',
|
||||
'PhabricatorSlowvoteOption' => 'PhabricatorSlowvoteDAO',
|
||||
'PhabricatorSlowvotePoll' => array(
|
||||
'PhabricatorSlowvoteDAO',
|
||||
|
@ -6789,6 +6888,7 @@ phutil_register_library_map(array(
|
|||
'PhabricatorSlowvotePollController' => 'PhabricatorSlowvoteController',
|
||||
'PhabricatorSlowvotePollPHIDType' => 'PhabricatorPHIDType',
|
||||
'PhabricatorSlowvoteQuery' => 'PhabricatorCursorPagedPolicyAwareQuery',
|
||||
'PhabricatorSlowvoteReplyHandler' => 'PhabricatorApplicationTransactionReplyHandler',
|
||||
'PhabricatorSlowvoteSchemaSpec' => 'PhabricatorConfigSchemaSpec',
|
||||
'PhabricatorSlowvoteSearchEngine' => 'PhabricatorApplicationSearchEngine',
|
||||
'PhabricatorSlowvoteTransaction' => 'PhabricatorApplicationTransaction',
|
||||
|
@ -6864,10 +6964,15 @@ phutil_register_library_map(array(
|
|||
'PhabricatorSubscribedToObjectEdgeType' => 'PhabricatorEdgeType',
|
||||
'PhabricatorSubscribersQuery' => 'PhabricatorQuery',
|
||||
'PhabricatorSubscriptionTriggerClock' => 'PhabricatorTriggerClock',
|
||||
'PhabricatorSubscriptionsAddSelfHeraldAction' => 'PhabricatorSubscriptionsHeraldAction',
|
||||
'PhabricatorSubscriptionsAddSubscribersHeraldAction' => 'PhabricatorSubscriptionsHeraldAction',
|
||||
'PhabricatorSubscriptionsApplication' => 'PhabricatorApplication',
|
||||
'PhabricatorSubscriptionsEditController' => 'PhabricatorController',
|
||||
'PhabricatorSubscriptionsEditor' => 'PhabricatorEditor',
|
||||
'PhabricatorSubscriptionsHeraldAction' => 'HeraldAction',
|
||||
'PhabricatorSubscriptionsListController' => 'PhabricatorController',
|
||||
'PhabricatorSubscriptionsRemoveSelfHeraldAction' => 'PhabricatorSubscriptionsHeraldAction',
|
||||
'PhabricatorSubscriptionsRemoveSubscribersHeraldAction' => 'PhabricatorSubscriptionsHeraldAction',
|
||||
'PhabricatorSubscriptionsSubscribeEmailCommand' => 'MetaMTAEmailTransactionCommand',
|
||||
'PhabricatorSubscriptionsSubscribersPolicyRule' => 'PhabricatorPolicyRule',
|
||||
'PhabricatorSubscriptionsTransactionController' => 'PhabricatorController',
|
||||
|
@ -6940,7 +7045,6 @@ phutil_register_library_map(array(
|
|||
'PhabricatorTrivialTestCase' => 'PhabricatorTestCase',
|
||||
'PhabricatorTwitchAuthProvider' => 'PhabricatorOAuth2AuthProvider',
|
||||
'PhabricatorTwitterAuthProvider' => 'PhabricatorOAuth1AuthProvider',
|
||||
'PhabricatorTwoColumnUIExample' => 'PhabricatorUIExample',
|
||||
'PhabricatorTypeaheadApplication' => 'PhabricatorApplication',
|
||||
'PhabricatorTypeaheadCompositeDatasource' => 'PhabricatorTypeaheadDatasource',
|
||||
'PhabricatorTypeaheadDatasource' => 'Phobject',
|
||||
|
@ -7497,8 +7601,11 @@ phutil_register_library_map(array(
|
|||
'PhabricatorTokenReceiverInterface',
|
||||
'PhabricatorProjectInterface',
|
||||
'PhabricatorDestructibleInterface',
|
||||
'PhabricatorSpacesInterface',
|
||||
),
|
||||
'PonderQuestionCommentController' => 'PonderController',
|
||||
'PonderQuestionDefaultEditCapability' => 'PhabricatorPolicyCapability',
|
||||
'PonderQuestionDefaultViewCapability' => 'PhabricatorPolicyCapability',
|
||||
'PonderQuestionEditController' => 'PonderController',
|
||||
'PonderQuestionEditor' => 'PonderEditor',
|
||||
'PonderQuestionHasVotingUserEdgeType' => 'PhabricatorEdgeType',
|
||||
|
|
|
@ -3,9 +3,8 @@
|
|||
final class PhabricatorAuditAddCommentController
|
||||
extends PhabricatorAuditController {
|
||||
|
||||
public function processRequest() {
|
||||
$request = $this->getRequest();
|
||||
$user = $request->getUser();
|
||||
public function handleRequest(AphrontRequest $request) {
|
||||
$viewer = $request->getViewer();
|
||||
|
||||
if (!$request->isFormPost()) {
|
||||
return new Aphront403Response();
|
||||
|
@ -13,7 +12,7 @@ final class PhabricatorAuditAddCommentController
|
|||
|
||||
$commit_phid = $request->getStr('commit');
|
||||
$commit = id(new DiffusionCommitQuery())
|
||||
->setViewer($user)
|
||||
->setViewer($viewer)
|
||||
->withPHIDs(array($commit_phid))
|
||||
->needAuditRequests(true)
|
||||
->executeOne();
|
||||
|
@ -61,7 +60,7 @@ final class PhabricatorAuditAddCommentController
|
|||
}
|
||||
|
||||
$inlines = PhabricatorAuditInlineComment::loadDraftComments(
|
||||
$user,
|
||||
$viewer,
|
||||
$commit->getPHID());
|
||||
foreach ($inlines as $inline) {
|
||||
$xactions[] = id(new PhabricatorAuditTransaction())
|
||||
|
@ -70,14 +69,14 @@ final class PhabricatorAuditAddCommentController
|
|||
}
|
||||
|
||||
id(new PhabricatorAuditEditor())
|
||||
->setActor($user)
|
||||
->setActor($viewer)
|
||||
->setContentSourceFromRequest($request)
|
||||
->setContinueOnMissingFields(true)
|
||||
->applyTransactions($commit, $xactions);
|
||||
|
||||
$draft = id(new PhabricatorDraft())->loadOneWhere(
|
||||
'authorPHID = %s AND draftKey = %s',
|
||||
$user->getPHID(),
|
||||
$viewer->getPHID(),
|
||||
'diffusion-audit-'.$commit->getID());
|
||||
if ($draft) {
|
||||
$draft->delete();
|
||||
|
|
|
@ -3,17 +3,11 @@
|
|||
final class PhabricatorAuditPreviewController
|
||||
extends PhabricatorAuditController {
|
||||
|
||||
private $id;
|
||||
public function handleRequest(AphrontRequest $request) {
|
||||
$viewer = $request->getViewer();
|
||||
$id = $request->getURIData('id');
|
||||
|
||||
public function willProcessRequest(array $data) {
|
||||
$this->id = $data['id'];
|
||||
}
|
||||
|
||||
public function processRequest() {
|
||||
$request = $this->getRequest();
|
||||
$user = $request->getUser();
|
||||
|
||||
$commit = id(new PhabricatorRepositoryCommit())->load($this->id);
|
||||
$commit = id(new PhabricatorRepositoryCommit())->load($id);
|
||||
if (!$commit) {
|
||||
return new Aphront404Response();
|
||||
}
|
||||
|
@ -23,7 +17,7 @@ final class PhabricatorAuditPreviewController
|
|||
$action = $request->getStr('action');
|
||||
if ($action != PhabricatorAuditActionConstants::COMMENT) {
|
||||
$action_xaction = id(new PhabricatorAuditTransaction())
|
||||
->setAuthorPHID($user->getPHID())
|
||||
->setAuthorPHID($viewer->getPHID())
|
||||
->setObjectPHID($commit->getPHID())
|
||||
->setTransactionType(PhabricatorAuditActionConstants::ACTION)
|
||||
->setNewValue($action);
|
||||
|
@ -52,7 +46,7 @@ final class PhabricatorAuditPreviewController
|
|||
$content = $request->getStr('content');
|
||||
if (strlen($content)) {
|
||||
$xactions[] = id(new PhabricatorAuditTransaction())
|
||||
->setAuthorPHID($user->getPHID())
|
||||
->setAuthorPHID($viewer->getPHID())
|
||||
->setObjectPHID($commit->getPHID())
|
||||
->setTransactionType(PhabricatorTransactions::TYPE_COMMENT)
|
||||
->attachComment(
|
||||
|
@ -72,13 +66,13 @@ final class PhabricatorAuditPreviewController
|
|||
|
||||
$view = id(new PhabricatorAuditTransactionView())
|
||||
->setIsPreview(true)
|
||||
->setUser($user)
|
||||
->setUser($viewer)
|
||||
->setObjectPHID($commit->getPHID())
|
||||
->setTransactions($xactions);
|
||||
|
||||
id(new PhabricatorDraft())
|
||||
->setAuthorPHID($user->getPHID())
|
||||
->setDraftKey('diffusion-audit-'.$this->id)
|
||||
->setAuthorPHID($viewer->getPHID())
|
||||
->setDraftKey('diffusion-audit-'.$id)
|
||||
->setDraft($content)
|
||||
->replaceOrDelete();
|
||||
|
||||
|
|
|
@ -170,7 +170,7 @@ final class PhabricatorAuditEditor
|
|||
$audit_requested = PhabricatorAuditStatusConstants::AUDIT_REQUESTED;
|
||||
$audit_reason = $this->getAuditReasons($phid);
|
||||
}
|
||||
$requests[] = id (new PhabricatorRepositoryAuditRequest())
|
||||
$requests[] = id(new PhabricatorRepositoryAuditRequest())
|
||||
->setCommitPHID($object->getPHID())
|
||||
->setAuditorPHID($phid)
|
||||
->setAuditStatus($audit_requested)
|
||||
|
@ -877,35 +877,6 @@ final class PhabricatorAuditEditor
|
|||
HeraldAdapter $adapter,
|
||||
HeraldTranscript $transcript) {
|
||||
|
||||
$xactions = array();
|
||||
|
||||
$audit_phids = $adapter->getAuditMap();
|
||||
foreach ($audit_phids as $phid => $rule_ids) {
|
||||
foreach ($rule_ids as $rule_id) {
|
||||
$this->addAuditReason(
|
||||
$phid,
|
||||
pht(
|
||||
'%s Triggered Audit',
|
||||
"H{$rule_id}"));
|
||||
}
|
||||
}
|
||||
|
||||
if ($audit_phids) {
|
||||
$xactions[] = id(new PhabricatorAuditTransaction())
|
||||
->setTransactionType(PhabricatorAuditActionConstants::ADD_AUDITORS)
|
||||
->setNewValue(array_fuse(array_keys($audit_phids)))
|
||||
->setMetadataValue(
|
||||
'auditStatus',
|
||||
PhabricatorAuditStatusConstants::AUDIT_REQUIRED)
|
||||
->setMetadataValue(
|
||||
'auditReasonMap', $this->auditReasonMap);
|
||||
}
|
||||
|
||||
HarbormasterBuildable::applyBuildPlans(
|
||||
$object->getPHID(),
|
||||
$object->getRepository()->getPHID(),
|
||||
$adapter->getBuildPlans());
|
||||
|
||||
$limit = self::MAX_FILES_SHOWN_IN_EMAIL;
|
||||
$files = $adapter->loadAffectedPaths();
|
||||
sort($files);
|
||||
|
@ -919,7 +890,7 @@ final class PhabricatorAuditEditor
|
|||
}
|
||||
$this->affectedFiles = implode("\n", $files);
|
||||
|
||||
return $xactions;
|
||||
return array();
|
||||
}
|
||||
|
||||
private function isCommitMostlyImported(PhabricatorLiskDAO $object) {
|
||||
|
|
|
@ -3,17 +3,11 @@
|
|||
final class PhabricatorAuthConfirmLinkController
|
||||
extends PhabricatorAuthController {
|
||||
|
||||
private $accountKey;
|
||||
public function handleRequest(AphrontRequest $request) {
|
||||
$viewer = $this->getViewer();
|
||||
$accountkey = $request->getURIData('akey');
|
||||
|
||||
public function willProcessRequest(array $data) {
|
||||
$this->accountKey = idx($data, 'akey');
|
||||
}
|
||||
|
||||
public function processRequest() {
|
||||
$request = $this->getRequest();
|
||||
$viewer = $request->getUser();
|
||||
|
||||
$result = $this->loadAccountForRegistrationOrLinking($this->accountKey);
|
||||
$result = $this->loadAccountForRegistrationOrLinking($accountkey);
|
||||
list($account, $provider, $response) = $result;
|
||||
|
||||
if ($response) {
|
||||
|
|
|
@ -3,9 +3,8 @@
|
|||
final class PhabricatorAuthDowngradeSessionController
|
||||
extends PhabricatorAuthController {
|
||||
|
||||
public function processRequest() {
|
||||
$request = $this->getRequest();
|
||||
$viewer = $request->getUser();
|
||||
public function handleRequest(AphrontRequest $request) {
|
||||
$viewer = $this->getViewer();
|
||||
|
||||
$panel_uri = '/settings/panel/sessions/';
|
||||
|
||||
|
|
|
@ -15,9 +15,8 @@ final class PhabricatorAuthFinishController
|
|||
return true;
|
||||
}
|
||||
|
||||
public function processRequest() {
|
||||
$request = $this->getRequest();
|
||||
$viewer = $request->getUser();
|
||||
public function handleRequest(AphrontRequest $request) {
|
||||
$viewer = $this->getViewer();
|
||||
|
||||
// If the user already has a full session, just kick them out of here.
|
||||
$has_partial_session = $viewer->hasSession() &&
|
||||
|
|
|
@ -3,25 +3,18 @@
|
|||
final class PhabricatorAuthLinkController
|
||||
extends PhabricatorAuthController {
|
||||
|
||||
private $action;
|
||||
private $providerKey;
|
||||
|
||||
public function willProcessRequest(array $data) {
|
||||
$this->providerKey = $data['pkey'];
|
||||
$this->action = $data['action'];
|
||||
}
|
||||
|
||||
public function processRequest() {
|
||||
$request = $this->getRequest();
|
||||
$viewer = $request->getUser();
|
||||
public function handleRequest(AphrontRequest $request) {
|
||||
$viewer = $this->getViewer();
|
||||
$action = $request->getURIData('action');
|
||||
$provider_key = $request->getURIData('pkey');
|
||||
|
||||
$provider = PhabricatorAuthProvider::getEnabledProviderByKey(
|
||||
$this->providerKey);
|
||||
$provider_key);
|
||||
if (!$provider) {
|
||||
return new Aphront404Response();
|
||||
}
|
||||
|
||||
switch ($this->action) {
|
||||
switch ($action) {
|
||||
case 'link':
|
||||
if (!$provider->shouldAllowAccountLink()) {
|
||||
return $this->renderErrorPage(
|
||||
|
@ -50,7 +43,7 @@ final class PhabricatorAuthLinkController
|
|||
$provider->getProviderDomain(),
|
||||
$viewer->getPHID());
|
||||
|
||||
switch ($this->action) {
|
||||
switch ($action) {
|
||||
case 'link':
|
||||
if ($account) {
|
||||
return $this->renderErrorPage(
|
||||
|
@ -81,7 +74,7 @@ final class PhabricatorAuthLinkController
|
|||
|
||||
PhabricatorCookies::setClientIDCookie($request);
|
||||
|
||||
switch ($this->action) {
|
||||
switch ($action) {
|
||||
case 'link':
|
||||
id(new PhabricatorAuthSessionEngine())->requireHighSecuritySession(
|
||||
$viewer,
|
||||
|
@ -107,7 +100,7 @@ final class PhabricatorAuthLinkController
|
|||
$form);
|
||||
}
|
||||
|
||||
switch ($this->action) {
|
||||
switch ($action) {
|
||||
case 'link':
|
||||
$name = pht('Link Account');
|
||||
$title = pht('Link %s Account', $provider->getProviderName());
|
||||
|
|
|
@ -20,18 +20,14 @@ final class PhabricatorAuthLoginController
|
|||
return parent::shouldAllowRestrictedParameter($parameter_name);
|
||||
}
|
||||
|
||||
public function willProcessRequest(array $data) {
|
||||
$this->providerKey = $data['pkey'];
|
||||
$this->extraURIData = idx($data, 'extra');
|
||||
}
|
||||
|
||||
public function getExtraURIData() {
|
||||
return $this->extraURIData;
|
||||
}
|
||||
|
||||
public function processRequest() {
|
||||
$request = $this->getRequest();
|
||||
$viewer = $request->getUser();
|
||||
public function handleRequest(AphrontRequest $request) {
|
||||
$viewer = $this->getViewer();
|
||||
$this->providerKey = $request->getURIData('pkey');
|
||||
$this->extraURIData = $request->getURIData('extra');
|
||||
|
||||
$response = $this->loadProvider();
|
||||
if ($response) {
|
||||
|
|
|
@ -15,16 +15,15 @@ final class PhabricatorAuthNeedsApprovalController
|
|||
return false;
|
||||
}
|
||||
|
||||
public function processRequest() {
|
||||
$request = $this->getRequest();
|
||||
$user = $request->getUser();
|
||||
public function handleRequest(AphrontRequest $request) {
|
||||
$viewer = $this->getViewer();
|
||||
|
||||
$wait_for_approval = pht(
|
||||
"Your account has been created, but needs to be approved by an ".
|
||||
"administrator. You'll receive an email once your account is approved.");
|
||||
|
||||
$dialog = id(new AphrontDialogView())
|
||||
->setUser($user)
|
||||
->setUser($viewer)
|
||||
->setTitle(pht('Wait for Approval'))
|
||||
->appendChild($wait_for_approval)
|
||||
->addCancelButton('/', pht('Wait Patiently'));
|
||||
|
|
|
@ -9,9 +9,8 @@ final class PhabricatorAuthNeedsMultiFactorController
|
|||
return false;
|
||||
}
|
||||
|
||||
public function processRequest() {
|
||||
$request = $this->getRequest();
|
||||
$viewer = $request->getUser();
|
||||
public function handleRequest(AphrontRequest $request) {
|
||||
$viewer = $this->getViewer();
|
||||
|
||||
$panel = id(new PhabricatorMultiFactorSettingsPanel())
|
||||
->setUser($viewer)
|
||||
|
|
|
@ -3,8 +3,6 @@
|
|||
final class PhabricatorAuthOldOAuthRedirectController
|
||||
extends PhabricatorAuthController {
|
||||
|
||||
private $provider;
|
||||
|
||||
public function shouldRequireLogin() {
|
||||
return false;
|
||||
}
|
||||
|
@ -16,11 +14,9 @@ final class PhabricatorAuthOldOAuthRedirectController
|
|||
return parent::shouldAllowRestrictedParameter($parameter_name);
|
||||
}
|
||||
|
||||
public function willProcessRequest(array $data) {
|
||||
$this->provider = $data['provider'];
|
||||
}
|
||||
|
||||
public function processRequest() {
|
||||
public function handleRequest(AphrontRequest $request) {
|
||||
$viewer = $this->getViewer();
|
||||
$provider = $request->getURIData('provider');
|
||||
// TODO: Most OAuth providers are OK with changing the redirect URI, but
|
||||
// Google and GitHub are strict. We need to respect the old OAuth URI until
|
||||
// we can get installs to migrate. This just keeps the old OAuth URI working
|
||||
|
@ -31,11 +27,11 @@ final class PhabricatorAuthOldOAuthRedirectController
|
|||
'github' => 'github:github.com',
|
||||
);
|
||||
|
||||
if (!isset($provider_map[$this->provider])) {
|
||||
if (!isset($provider_map[$provider])) {
|
||||
return new Aphront404Response();
|
||||
}
|
||||
|
||||
$provider_key = $provider_map[$this->provider];
|
||||
$provider_key = $provider_map[$provider];
|
||||
|
||||
$uri = $this->getRequest()->getRequestURI();
|
||||
$uri->setPath($this->getApplicationURI('login/'.$provider_key.'/'));
|
||||
|
|
|
@ -3,24 +3,16 @@
|
|||
final class PhabricatorAuthOneTimeLoginController
|
||||
extends PhabricatorAuthController {
|
||||
|
||||
private $id;
|
||||
private $key;
|
||||
private $emailID;
|
||||
private $linkType;
|
||||
|
||||
public function shouldRequireLogin() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public function willProcessRequest(array $data) {
|
||||
$this->linkType = $data['type'];
|
||||
$this->id = $data['id'];
|
||||
$this->key = $data['key'];
|
||||
$this->emailID = idx($data, 'emailID');
|
||||
}
|
||||
|
||||
public function processRequest() {
|
||||
$request = $this->getRequest();
|
||||
public function handleRequest(AphrontRequest $request) {
|
||||
$viewer = $this->getViewer();
|
||||
$id = $request->getURIData('id');
|
||||
$link_type = $request->getURIData('type');
|
||||
$key = $request->getURIData('key');
|
||||
$email_id = $request->getURIData('emailID');
|
||||
|
||||
if ($request->getUser()->isLoggedIn()) {
|
||||
return $this->renderError(
|
||||
|
@ -29,7 +21,7 @@ final class PhabricatorAuthOneTimeLoginController
|
|||
|
||||
$target_user = id(new PhabricatorPeopleQuery())
|
||||
->setViewer(PhabricatorUser::getOmnipotentUser())
|
||||
->withIDs(array($this->id))
|
||||
->withIDs(array($id))
|
||||
->executeOne();
|
||||
if (!$target_user) {
|
||||
return new Aphront404Response();
|
||||
|
@ -58,11 +50,11 @@ final class PhabricatorAuthOneTimeLoginController
|
|||
// - get a "verified" address you don't control.
|
||||
|
||||
$target_email = null;
|
||||
if ($this->emailID) {
|
||||
if ($email_id) {
|
||||
$target_email = id(new PhabricatorUserEmail())->loadOneWhere(
|
||||
'userPHID = %s AND id = %d',
|
||||
$target_user->getPHID(),
|
||||
$this->emailID);
|
||||
$email_id);
|
||||
if (!$target_email) {
|
||||
return new Aphront404Response();
|
||||
}
|
||||
|
@ -72,7 +64,7 @@ final class PhabricatorAuthOneTimeLoginController
|
|||
$token = $engine->loadOneTimeLoginKey(
|
||||
$target_user,
|
||||
$target_email,
|
||||
$this->key);
|
||||
$key);
|
||||
|
||||
if (!$token) {
|
||||
return $this->newDialog()
|
||||
|
@ -154,7 +146,7 @@ final class PhabricatorAuthOneTimeLoginController
|
|||
// then log a user in to an account they control via sneaky invisible
|
||||
// form submissions.
|
||||
|
||||
switch ($this->linkType) {
|
||||
switch ($link_type) {
|
||||
case PhabricatorAuthSessionEngine::ONETIME_WELCOME:
|
||||
$title = pht('Welcome to Phabricator');
|
||||
break;
|
||||
|
|
|
@ -3,26 +3,21 @@
|
|||
final class PhabricatorAuthRegisterController
|
||||
extends PhabricatorAuthController {
|
||||
|
||||
private $accountKey;
|
||||
|
||||
public function shouldRequireLogin() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public function willProcessRequest(array $data) {
|
||||
$this->accountKey = idx($data, 'akey');
|
||||
}
|
||||
|
||||
public function processRequest() {
|
||||
$request = $this->getRequest();
|
||||
public function handleRequest(AphrontRequest $request) {
|
||||
$viewer = $this->getViewer();
|
||||
$account_key = $request->getURIData('akey');
|
||||
|
||||
if ($request->getUser()->isLoggedIn()) {
|
||||
return $this->renderError(pht('You are already logged in.'));
|
||||
}
|
||||
|
||||
$is_setup = false;
|
||||
if (strlen($this->accountKey)) {
|
||||
$result = $this->loadAccountForRegistrationOrLinking($this->accountKey);
|
||||
if (strlen($account_key)) {
|
||||
$result = $this->loadAccountForRegistrationOrLinking($account_key);
|
||||
list($account, $provider, $response) = $result;
|
||||
$is_default = false;
|
||||
} else if ($this->isFirstTimeSetup()) {
|
||||
|
|
|
@ -3,23 +3,17 @@
|
|||
final class PhabricatorAuthRevokeTokenController
|
||||
extends PhabricatorAuthController {
|
||||
|
||||
private $id;
|
||||
public function handleRequest(AphrontRequest $request) {
|
||||
$viewer = $this->getViewer();
|
||||
$id = $request->getURIData('id');
|
||||
|
||||
public function willProcessRequest(array $data) {
|
||||
$this->id = $data['id'];
|
||||
}
|
||||
|
||||
public function processRequest() {
|
||||
$request = $this->getRequest();
|
||||
$viewer = $request->getUser();
|
||||
|
||||
$is_all = ($this->id === 'all');
|
||||
$is_all = ($id === 'all');
|
||||
|
||||
$query = id(new PhabricatorAuthTemporaryTokenQuery())
|
||||
->setViewer($viewer)
|
||||
->withObjectPHIDs(array($viewer->getPHID()));
|
||||
if (!$is_all) {
|
||||
$query->withIDs(array($this->id));
|
||||
$query->withIDs(array($id));
|
||||
}
|
||||
|
||||
$tokens = $query->execute();
|
||||
|
|
|
@ -5,8 +5,8 @@ final class PhabricatorAuthSSHKeyEditController
|
|||
|
||||
public function handleRequest(AphrontRequest $request) {
|
||||
$viewer = $this->getViewer();
|
||||
|
||||
$id = $request->getURIData('id');
|
||||
|
||||
if ($id) {
|
||||
$key = id(new PhabricatorAuthSSHKeyQuery())
|
||||
->setViewer($viewer)
|
||||
|
|
|
@ -3,23 +3,17 @@
|
|||
final class PhabricatorAuthTerminateSessionController
|
||||
extends PhabricatorAuthController {
|
||||
|
||||
private $id;
|
||||
public function handleRequest(AphrontRequest $request) {
|
||||
$viewer = $this->getViewer();
|
||||
$id = $request->getURIData('id');
|
||||
|
||||
public function willProcessRequest(array $data) {
|
||||
$this->id = $data['id'];
|
||||
}
|
||||
|
||||
public function processRequest() {
|
||||
$request = $this->getRequest();
|
||||
$viewer = $request->getUser();
|
||||
|
||||
$is_all = ($this->id === 'all');
|
||||
$is_all = ($id === 'all');
|
||||
|
||||
$query = id(new PhabricatorAuthSessionQuery())
|
||||
->setViewer($viewer)
|
||||
->withIdentityPHIDs(array($viewer->getPHID()));
|
||||
if (!$is_all) {
|
||||
$query->withIDs(array($this->id));
|
||||
$query->withIDs(array($id));
|
||||
}
|
||||
|
||||
$current_key = PhabricatorHash::digest(
|
||||
|
|
|
@ -5,13 +5,9 @@ final class PhabricatorAuthUnlinkController
|
|||
|
||||
private $providerKey;
|
||||
|
||||
public function willProcessRequest(array $data) {
|
||||
$this->providerKey = $data['pkey'];
|
||||
}
|
||||
|
||||
public function processRequest() {
|
||||
$request = $this->getRequest();
|
||||
$viewer = $request->getUser();
|
||||
public function handleRequest(AphrontRequest $request) {
|
||||
$viewer = $this->getViewer();
|
||||
$this->providerKey = $request->getURIData('pkey');
|
||||
|
||||
list($type, $domain) = explode(':', $this->providerKey, 2);
|
||||
|
||||
|
|
|
@ -15,9 +15,8 @@ final class PhabricatorAuthValidateController
|
|||
return true;
|
||||
}
|
||||
|
||||
public function processRequest() {
|
||||
$request = $this->getRequest();
|
||||
$viewer = $request->getUser();
|
||||
public function handleRequest(AphrontRequest $request) {
|
||||
$viewer = $this->getViewer();
|
||||
|
||||
$failures = array();
|
||||
|
||||
|
|
|
@ -7,15 +7,16 @@ final class PhabricatorDisabledUserController
|
|||
return false;
|
||||
}
|
||||
|
||||
public function processRequest() {
|
||||
$request = $this->getRequest();
|
||||
$user = $request->getUser();
|
||||
if (!$user->getIsDisabled()) {
|
||||
public function handleRequest(AphrontRequest $request) {
|
||||
$viewer = $this->getViewer();
|
||||
$id = $request->getURIData('id');
|
||||
|
||||
if (!$viewer->getIsDisabled()) {
|
||||
return new Aphront404Response();
|
||||
}
|
||||
|
||||
return id(new AphrontDialogView())
|
||||
->setUser($user)
|
||||
->setUser($viewer)
|
||||
->setTitle(pht('Account Disabled'))
|
||||
->addCancelButton('/logout/', pht('Okay'))
|
||||
->appendParagraph(pht('Your account has been disabled.'));
|
||||
|
|
|
@ -7,8 +7,7 @@ final class PhabricatorEmailLoginController
|
|||
return false;
|
||||
}
|
||||
|
||||
public function processRequest() {
|
||||
$request = $this->getRequest();
|
||||
public function handleRequest(AphrontRequest $request) {
|
||||
|
||||
if (!PhabricatorPasswordAuthProvider::getPasswordProvider()) {
|
||||
return new Aphront400Response();
|
||||
|
|
|
@ -3,12 +3,6 @@
|
|||
final class PhabricatorEmailVerificationController
|
||||
extends PhabricatorAuthController {
|
||||
|
||||
private $code;
|
||||
|
||||
public function willProcessRequest(array $data) {
|
||||
$this->code = $data['code'];
|
||||
}
|
||||
|
||||
public function shouldRequireEmailVerification() {
|
||||
// Since users need to be able to hit this endpoint in order to verify
|
||||
// email, we can't ever require email verification here.
|
||||
|
@ -21,11 +15,11 @@ final class PhabricatorEmailVerificationController
|
|||
return false;
|
||||
}
|
||||
|
||||
public function processRequest() {
|
||||
$request = $this->getRequest();
|
||||
$user = $request->getUser();
|
||||
public function handleRequest(AphrontRequest $request) {
|
||||
$viewer = $this->getViewer();
|
||||
$code = $request->getURIData('code');
|
||||
|
||||
if ($user->getIsDisabled()) {
|
||||
if ($viewer->getIsDisabled()) {
|
||||
// We allowed unapproved and disabled users to hit this controller, but
|
||||
// want to kick out disabled users now.
|
||||
return new Aphront400Response();
|
||||
|
@ -33,8 +27,8 @@ final class PhabricatorEmailVerificationController
|
|||
|
||||
$email = id(new PhabricatorUserEmail())->loadOneWhere(
|
||||
'userPHID = %s AND verificationCode = %s',
|
||||
$user->getPHID(),
|
||||
$this->code);
|
||||
$viewer->getPHID(),
|
||||
$code);
|
||||
|
||||
$submit = null;
|
||||
|
||||
|
@ -46,7 +40,7 @@ final class PhabricatorEmailVerificationController
|
|||
'user. Make sure you followed the link in the email correctly and are '.
|
||||
'logged in with the user account associated with the email address.');
|
||||
$continue = pht('Rats!');
|
||||
} else if ($email->getIsVerified() && $user->getIsEmailVerified()) {
|
||||
} else if ($email->getIsVerified() && $viewer->getIsEmailVerified()) {
|
||||
$title = pht('Address Already Verified');
|
||||
$content = pht(
|
||||
'This email address has already been verified.');
|
||||
|
@ -54,8 +48,8 @@ final class PhabricatorEmailVerificationController
|
|||
} else if ($request->isFormPost()) {
|
||||
|
||||
id(new PhabricatorUserEditor())
|
||||
->setActor($user)
|
||||
->verifyEmail($user, $email);
|
||||
->setActor($viewer)
|
||||
->verifyEmail($viewer, $email);
|
||||
|
||||
$title = pht('Address Verified');
|
||||
$content = pht(
|
||||
|
@ -72,7 +66,7 @@ final class PhabricatorEmailVerificationController
|
|||
}
|
||||
|
||||
$dialog = id(new AphrontDialogView())
|
||||
->setUser($user)
|
||||
->setUser($viewer)
|
||||
->setTitle($title)
|
||||
->addCancelButton('/', $continue)
|
||||
->appendChild($content);
|
||||
|
|
|
@ -26,14 +26,13 @@ final class PhabricatorLogoutController
|
|||
}
|
||||
|
||||
public function handleRequest(AphrontRequest $request) {
|
||||
$request = $this->getRequest();
|
||||
$user = $request->getUser();
|
||||
$viewer = $this->getViewer();
|
||||
|
||||
if ($request->isFormPost()) {
|
||||
|
||||
$log = PhabricatorUserLog::initializeNewLog(
|
||||
$user,
|
||||
$user->getPHID(),
|
||||
$viewer,
|
||||
$viewer->getPHID(),
|
||||
PhabricatorUserLog::ACTION_LOGOUT);
|
||||
$log->save();
|
||||
|
||||
|
@ -43,7 +42,7 @@ final class PhabricatorLogoutController
|
|||
$phsid = $request->getCookie(PhabricatorCookies::COOKIE_SESSION);
|
||||
if (strlen($phsid)) {
|
||||
$session = id(new PhabricatorAuthSessionQuery())
|
||||
->setViewer($user)
|
||||
->setViewer($viewer)
|
||||
->withSessionKeys(array($phsid))
|
||||
->executeOne();
|
||||
if ($session) {
|
||||
|
@ -56,9 +55,9 @@ final class PhabricatorLogoutController
|
|||
->setURI('/auth/loggedout/');
|
||||
}
|
||||
|
||||
if ($user->getPHID()) {
|
||||
if ($viewer->getPHID()) {
|
||||
$dialog = id(new AphrontDialogView())
|
||||
->setUser($user)
|
||||
->setUser($viewer)
|
||||
->setTitle(pht('Log out of Phabricator?'))
|
||||
->appendChild(pht('Are you sure you want to log out?'))
|
||||
->addSubmitButton(pht('Logout'))
|
||||
|
|
|
@ -13,13 +13,12 @@ final class PhabricatorMustVerifyEmailController
|
|||
return false;
|
||||
}
|
||||
|
||||
public function processRequest() {
|
||||
$request = $this->getRequest();
|
||||
$user = $request->getUser();
|
||||
public function handleRequest(AphrontRequest $request) {
|
||||
$viewer = $this->getViewer();
|
||||
|
||||
$email = $user->loadPrimaryEmail();
|
||||
$email = $viewer->loadPrimaryEmail();
|
||||
|
||||
if ($user->getIsEmailVerified()) {
|
||||
if ($viewer->getIsEmailVerified()) {
|
||||
return id(new AphrontRedirectResponse())->setURI('/');
|
||||
}
|
||||
|
||||
|
@ -27,7 +26,7 @@ final class PhabricatorMustVerifyEmailController
|
|||
|
||||
$sent = null;
|
||||
if ($request->isFormPost()) {
|
||||
$email->sendVerificationEmail($user);
|
||||
$email->sendVerificationEmail($viewer);
|
||||
$sent = new PHUIInfoView();
|
||||
$sent->setSeverity(PHUIInfoView::SEVERITY_NOTICE);
|
||||
$sent->setTitle(pht('Email Sent'));
|
||||
|
@ -48,7 +47,7 @@ final class PhabricatorMustVerifyEmailController
|
|||
'to try sending another one.');
|
||||
|
||||
$dialog = id(new AphrontDialogView())
|
||||
->setUser($user)
|
||||
->setUser($viewer)
|
||||
->setTitle(pht('Check Your Email'))
|
||||
->appendParagraph($must_verify)
|
||||
->appendParagraph($send_again)
|
||||
|
|
|
@ -2,14 +2,13 @@
|
|||
|
||||
final class PhabricatorRefreshCSRFController extends PhabricatorAuthController {
|
||||
|
||||
public function processRequest() {
|
||||
$request = $this->getRequest();
|
||||
$user = $request->getUser();
|
||||
public function handleRequest(AphrontRequest $request) {
|
||||
$viewer = $this->getViewer();
|
||||
|
||||
return id(new AphrontAjaxResponse())
|
||||
->setContent(
|
||||
array(
|
||||
'token' => $user->getCSRFToken(),
|
||||
'token' => $viewer->getCSRFToken(),
|
||||
));
|
||||
}
|
||||
|
||||
|
|
|
@ -142,6 +142,23 @@ final class PhabricatorBadgesEditor
|
|||
return $errors;
|
||||
}
|
||||
|
||||
protected function shouldSendMail(
|
||||
PhabricatorLiskDAO $object,
|
||||
array $xactions) {
|
||||
return true;
|
||||
}
|
||||
|
||||
public function getMailTagsMap() {
|
||||
return array(
|
||||
PhabricatorBadgesTransaction::MAILTAG_DETAILS =>
|
||||
pht('Someone changes the badge\'s details.'),
|
||||
PhabricatorBadgesTransaction::MAILTAG_COMMENT =>
|
||||
pht('Someone comments on a badge.'),
|
||||
PhabricatorBadgesTransaction::MAILTAG_OTHER =>
|
||||
pht('Other badge activity not listed above occurs.'),
|
||||
);
|
||||
}
|
||||
|
||||
protected function shouldPublishFeedStory(
|
||||
PhabricatorLiskDAO $object,
|
||||
array $xactions) {
|
||||
|
@ -149,7 +166,7 @@ final class PhabricatorBadgesEditor
|
|||
}
|
||||
|
||||
protected function buildReplyHandler(PhabricatorLiskDAO $object) {
|
||||
return id(new PhabricatorMacroReplyHandler())
|
||||
return id(new PhabricatorBadgesReplyHandler())
|
||||
->setMailReceiver($object);
|
||||
}
|
||||
|
||||
|
@ -164,6 +181,7 @@ final class PhabricatorBadgesEditor
|
|||
|
||||
protected function getMailTo(PhabricatorLiskDAO $object) {
|
||||
return array(
|
||||
$object->getCreatorPHID(),
|
||||
$this->requireActor()->getPHID(),
|
||||
);
|
||||
}
|
||||
|
|
|
@ -0,0 +1,28 @@
|
|||
<?php
|
||||
|
||||
final class PhabricatorBadgesMailReceiver
|
||||
extends PhabricatorObjectMailReceiver {
|
||||
|
||||
public function isEnabled() {
|
||||
return PhabricatorApplication::isClassInstalled(
|
||||
'PhabricatorBadgesApplication');
|
||||
}
|
||||
|
||||
protected function getObjectPattern() {
|
||||
return 'BDGE[1-9]\d*';
|
||||
}
|
||||
|
||||
protected function loadObject($pattern, PhabricatorUser $viewer) {
|
||||
$id = (int)substr($pattern, 4);
|
||||
|
||||
return id(new PhabricatorBadgesQuery())
|
||||
->setViewer($viewer)
|
||||
->withIDs(array($id))
|
||||
->executeOne();
|
||||
}
|
||||
|
||||
protected function getTransactionReplyHandler() {
|
||||
return new PhabricatorBadgesReplyHandler();
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,16 @@
|
|||
<?php
|
||||
|
||||
final class PhabricatorBadgesReplyHandler
|
||||
extends PhabricatorApplicationTransactionReplyHandler {
|
||||
|
||||
public function validateMailReceiver($mail_receiver) {
|
||||
if (!($mail_receiver instanceof PhabricatorBadgesBadge)) {
|
||||
throw new Exception(pht('Mail receiver is not a %s!', 'Badges'));
|
||||
}
|
||||
}
|
||||
|
||||
public function getObjectPrefix() {
|
||||
return 'BDGE';
|
||||
}
|
||||
|
||||
}
|
|
@ -5,6 +5,7 @@ final class PhabricatorBadgesBadge extends PhabricatorBadgesDAO
|
|||
PhabricatorPolicyInterface,
|
||||
PhabricatorApplicationTransactionInterface,
|
||||
PhabricatorSubscribableInterface,
|
||||
PhabricatorTokenReceiverInterface,
|
||||
PhabricatorFlaggableInterface,
|
||||
PhabricatorDestructibleInterface {
|
||||
|
||||
|
@ -13,7 +14,7 @@ final class PhabricatorBadgesBadge extends PhabricatorBadgesDAO
|
|||
protected $description;
|
||||
protected $icon;
|
||||
protected $quality;
|
||||
protected $viewPolicy;
|
||||
protected $mailKey;
|
||||
protected $editPolicy;
|
||||
protected $status;
|
||||
protected $creatorPHID;
|
||||
|
@ -72,7 +73,6 @@ final class PhabricatorBadgesBadge extends PhabricatorBadgesDAO
|
|||
->setIcon(self::DEFAULT_ICON)
|
||||
->setQuality(self::DEFAULT_QUALITY)
|
||||
->setCreatorPHID($actor->getPHID())
|
||||
->setViewPolicy($view_policy)
|
||||
->setEditPolicy($edit_policy)
|
||||
->setStatus(self::STATUS_OPEN);
|
||||
}
|
||||
|
@ -87,6 +87,7 @@ final class PhabricatorBadgesBadge extends PhabricatorBadgesDAO
|
|||
'icon' => 'text255',
|
||||
'quality' => 'text255',
|
||||
'status' => 'text32',
|
||||
'mailKey' => 'bytes20',
|
||||
),
|
||||
self::CONFIG_KEY_SCHEMA => array(
|
||||
'key_creator' => array(
|
||||
|
@ -114,6 +115,13 @@ final class PhabricatorBadgesBadge extends PhabricatorBadgesDAO
|
|||
return $this->assertAttached($this->recipientPHIDs);
|
||||
}
|
||||
|
||||
public function save() {
|
||||
if (!$this->getMailKey()) {
|
||||
$this->setMailKey(Filesystem::readRandomCharacters(20));
|
||||
}
|
||||
return parent::save();
|
||||
}
|
||||
|
||||
|
||||
/* -( PhabricatorPolicyInterface )----------------------------------------- */
|
||||
|
||||
|
@ -182,6 +190,15 @@ final class PhabricatorBadgesBadge extends PhabricatorBadgesDAO
|
|||
}
|
||||
|
||||
|
||||
/* -( PhabricatorTokenReceiverInterface )---------------------------------- */
|
||||
|
||||
|
||||
public function getUsersToNotifyOfTokenGiven() {
|
||||
return array($this->getCreatorPHID());
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* -( PhabricatorDestructibleInterface )----------------------------------- */
|
||||
|
||||
|
||||
|
|
|
@ -10,6 +10,11 @@ final class PhabricatorBadgesTransaction
|
|||
const TYPE_STATUS = 'badges:status';
|
||||
const TYPE_FLAVOR = 'badges:flavor';
|
||||
|
||||
const MAILTAG_NAME = 'badges:name';
|
||||
const MAILTAG_DETAILS = 'badges:details';
|
||||
const MAILTAG_COMMENT = 'badges:comment';
|
||||
const MAILTAG_OTHER = 'badges:other';
|
||||
|
||||
public function getApplicationName() {
|
||||
return 'badges';
|
||||
}
|
||||
|
@ -168,6 +173,28 @@ final class PhabricatorBadgesTransaction
|
|||
return parent::getTitleForFeed();
|
||||
}
|
||||
|
||||
public function getMailTags() {
|
||||
$tags = parent::getMailTags();
|
||||
|
||||
switch ($this->getTransactionType()) {
|
||||
case PhabricatorTransactions::TYPE_COMMENT:
|
||||
$tags[] = self::MAILTAG_COMMENT;
|
||||
break;
|
||||
case self::TYPE_NAME:
|
||||
case self::TYPE_DESCRIPTION:
|
||||
case self::TYPE_FLAVOR:
|
||||
case self::TYPE_ICON:
|
||||
case self::TYPE_STATUS:
|
||||
case self::TYPE_QUALITY:
|
||||
$tags[] = self::MAILTAG_DETAILS;
|
||||
break;
|
||||
default:
|
||||
$tags[] = self::MAILTAG_OTHER;
|
||||
break;
|
||||
}
|
||||
return $tags;
|
||||
}
|
||||
|
||||
|
||||
public function shouldHide() {
|
||||
$old = $this->getOldValue();
|
||||
|
|
|
@ -3,20 +3,14 @@
|
|||
final class PhabricatorCalendarEventCancelController
|
||||
extends PhabricatorCalendarController {
|
||||
|
||||
private $id;
|
||||
|
||||
public function willProcessRequest(array $data) {
|
||||
$this->id = idx($data, 'id');
|
||||
}
|
||||
|
||||
public function processRequest() {
|
||||
$request = $this->getRequest();
|
||||
$user = $request->getUser();
|
||||
public function handleRequest(AphrontRequest $request) {
|
||||
$viewer = $request->getViewer();
|
||||
$id = $request->getURIData('id');
|
||||
$sequence = $request->getURIData('sequence');
|
||||
|
||||
$event = id(new PhabricatorCalendarEventQuery())
|
||||
->setViewer($user)
|
||||
->withIDs(array($this->id))
|
||||
->setViewer($viewer)
|
||||
->withIDs(array($id))
|
||||
->requireCapabilities(
|
||||
array(
|
||||
PhabricatorPolicyCapability::CAN_VIEW,
|
||||
|
@ -26,7 +20,7 @@ final class PhabricatorCalendarEventCancelController
|
|||
|
||||
if ($sequence) {
|
||||
$parent_event = $event;
|
||||
$event = $parent_event->generateNthGhost($sequence, $user);
|
||||
$event = $parent_event->generateNthGhost($sequence, $viewer);
|
||||
$event->attachParentEvent($parent_event);
|
||||
}
|
||||
|
||||
|
@ -51,10 +45,10 @@ final class PhabricatorCalendarEventCancelController
|
|||
return id(new AphrontRedirectResponse())->setURI($cancel_uri);
|
||||
} else if ($sequence) {
|
||||
$event = $this->createEventFromGhost(
|
||||
$user,
|
||||
$viewer,
|
||||
$event,
|
||||
$sequence);
|
||||
$event->applyViewerTimezone($user);
|
||||
$event->applyViewerTimezone($viewer);
|
||||
}
|
||||
|
||||
$xactions = array();
|
||||
|
@ -65,7 +59,7 @@ final class PhabricatorCalendarEventCancelController
|
|||
->setNewValue(!$is_cancelled);
|
||||
|
||||
$editor = id(new PhabricatorCalendarEventEditor())
|
||||
->setActor($user)
|
||||
->setActor($viewer)
|
||||
->setContentSourceFromRequest($request)
|
||||
->setContinueOnNoEffect(true)
|
||||
->setContinueOnMissingFields(true);
|
||||
|
|
|
@ -3,24 +3,20 @@
|
|||
final class PhabricatorCalendarEventCommentController
|
||||
extends PhabricatorCalendarController {
|
||||
|
||||
private $id;
|
||||
|
||||
public function willProcessRequest(array $data) {
|
||||
$this->id = idx($data, 'id');
|
||||
}
|
||||
|
||||
public function handleRequest(AphrontRequest $request) {
|
||||
if (!$request->isFormPost()) {
|
||||
return new Aphront400Response();
|
||||
}
|
||||
|
||||
$user = $request->getUser();
|
||||
$viewer = $request->getViewer();
|
||||
$id = $request->getURIData('id');
|
||||
|
||||
$is_preview = $request->isPreviewRequest();
|
||||
$draft = PhabricatorDraft::buildFromRequest($request);
|
||||
|
||||
$event = id(new PhabricatorCalendarEventQuery())
|
||||
->setViewer($user)
|
||||
->withIDs(array($this->id))
|
||||
->setViewer($viewer)
|
||||
->withIDs(array($id))
|
||||
->executeOne();
|
||||
if (!$event) {
|
||||
return new Aphront404Response();
|
||||
|
@ -29,7 +25,7 @@ final class PhabricatorCalendarEventCommentController
|
|||
$index = $request->getURIData('sequence');
|
||||
if ($index && !$is_preview) {
|
||||
$result = $this->getEventAtIndexForGhostPHID(
|
||||
$user,
|
||||
$viewer,
|
||||
$event->getPHID(),
|
||||
$index);
|
||||
|
||||
|
@ -37,10 +33,10 @@ final class PhabricatorCalendarEventCommentController
|
|||
$event = $result;
|
||||
} else {
|
||||
$event = $this->createEventFromGhost(
|
||||
$user,
|
||||
$viewer,
|
||||
$event,
|
||||
$index);
|
||||
$event->applyViewerTimezone($user);
|
||||
$event->applyViewerTimezone($viewer);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -54,7 +50,7 @@ final class PhabricatorCalendarEventCommentController
|
|||
->setContent($request->getStr('comment')));
|
||||
|
||||
$editor = id(new PhabricatorCalendarEventEditor())
|
||||
->setActor($user)
|
||||
->setActor($viewer)
|
||||
->setContinueOnNoEffect($request->isContinueRequest())
|
||||
->setContentSourceFromRequest($request)
|
||||
->setIsPreview($is_preview);
|
||||
|
@ -73,7 +69,7 @@ final class PhabricatorCalendarEventCommentController
|
|||
|
||||
if ($request->isAjax() && $is_preview) {
|
||||
return id(new PhabricatorApplicationTransactionResponse())
|
||||
->setViewer($user)
|
||||
->setViewer($viewer)
|
||||
->setTransactions($xactions)
|
||||
->setIsPreview($is_preview);
|
||||
} else {
|
||||
|
|
|
@ -5,10 +5,6 @@ final class PhabricatorCalendarEventEditController
|
|||
|
||||
private $id;
|
||||
|
||||
public function willProcessRequest(array $data) {
|
||||
$this->id = idx($data, 'id');
|
||||
}
|
||||
|
||||
public function isCreate() {
|
||||
return !$this->id;
|
||||
}
|
||||
|
@ -16,6 +12,8 @@ final class PhabricatorCalendarEventEditController
|
|||
public function handleRequest(AphrontRequest $request) {
|
||||
$viewer = $request->getViewer();
|
||||
$user_phid = $viewer->getPHID();
|
||||
$this->id = $request->getURIData('id');
|
||||
|
||||
$error_name = true;
|
||||
$error_recurrence_end_date = null;
|
||||
$error_start_date = true;
|
||||
|
|
|
@ -3,19 +3,14 @@
|
|||
final class PhabricatorCalendarEventEditIconController
|
||||
extends PhabricatorCalendarController {
|
||||
|
||||
private $id;
|
||||
|
||||
public function willProcessRequest(array $data) {
|
||||
$this->id = idx($data, 'id');
|
||||
}
|
||||
|
||||
public function handleRequest(AphrontRequest $request) {
|
||||
$viewer = $request->getUser();
|
||||
$id = $request->getURIData('id');
|
||||
|
||||
if ($this->id) {
|
||||
if ($id) {
|
||||
$event = id(new PhabricatorCalendarEventQuery())
|
||||
->setViewer($viewer)
|
||||
->withIDs(array($this->id))
|
||||
->withIDs(array($id))
|
||||
->requireCapabilities(
|
||||
array(
|
||||
PhabricatorPolicyCapability::CAN_VIEW,
|
||||
|
|
|
@ -3,14 +3,12 @@
|
|||
final class PhabricatorCalendarEventJoinController
|
||||
extends PhabricatorCalendarController {
|
||||
|
||||
private $id;
|
||||
|
||||
const ACTION_ACCEPT = 'accept';
|
||||
const ACTION_DECLINE = 'decline';
|
||||
const ACTION_JOIN = 'join';
|
||||
|
||||
public function handleRequest(AphrontRequest $request) {
|
||||
$this->id = $request->getURIData('id');
|
||||
$id = $request->getURIData('id');
|
||||
$action = $request->getURIData('action');
|
||||
|
||||
$request = $this->getRequest();
|
||||
|
@ -20,7 +18,7 @@ final class PhabricatorCalendarEventJoinController
|
|||
|
||||
$event = id(new PhabricatorCalendarEventQuery())
|
||||
->setViewer($viewer)
|
||||
->withIDs(array($this->id))
|
||||
->withIDs(array($id))
|
||||
->executeOne();
|
||||
|
||||
if (!$event) {
|
||||
|
|
|
@ -3,26 +3,20 @@
|
|||
final class PhabricatorCalendarEventViewController
|
||||
extends PhabricatorCalendarController {
|
||||
|
||||
private $id;
|
||||
|
||||
public function shouldAllowPublic() {
|
||||
return true;
|
||||
}
|
||||
|
||||
public function willProcessRequest(array $data) {
|
||||
$this->id = $data['id'];
|
||||
}
|
||||
|
||||
public function processRequest() {
|
||||
$request = $this->getRequest();
|
||||
$viewer = $request->getUser();
|
||||
public function handleRequest(AphrontRequest $request) {
|
||||
$viewer = $request->getViewer();
|
||||
$id = $request->getURIData('id');
|
||||
$sequence = $request->getURIData('sequence');
|
||||
|
||||
$timeline = null;
|
||||
|
||||
$event = id(new PhabricatorCalendarEventQuery())
|
||||
->setViewer($viewer)
|
||||
->withIDs(array($this->id))
|
||||
->withIDs(array($id))
|
||||
->executeOne();
|
||||
if (!$event) {
|
||||
return new Aphront404Response();
|
||||
|
|
|
@ -287,10 +287,21 @@ final class PhabricatorCalendarEventSearchEngine
|
|||
$event->getDuration());
|
||||
}
|
||||
|
||||
if ($event->getIsGhostEvent()) {
|
||||
$title_text = $event->getMonogram()
|
||||
.' ('
|
||||
.$event->getSequenceIndex()
|
||||
.'): '
|
||||
.$event->getName();
|
||||
} else {
|
||||
$title_text = $event->getMonogram().': '.$event->getName();
|
||||
}
|
||||
|
||||
$item = id(new PHUIObjectItemView())
|
||||
->setUser($viewer)
|
||||
->setObject($event)
|
||||
->setHeader($viewer->renderHandle($event->getPHID())->render())
|
||||
->setHeader($title_text)
|
||||
->setHref($event->getURI())
|
||||
->addAttribute($event_date_info)
|
||||
->addAttribute($attendees)
|
||||
->addIcon('none', $duration);
|
||||
|
|
|
@ -7,12 +7,11 @@ final class PhabricatorChatLogChannelListController
|
|||
return true;
|
||||
}
|
||||
|
||||
public function processRequest() {
|
||||
$request = $this->getRequest();
|
||||
$user = $request->getUser();
|
||||
public function handleRequest(AphrontRequest $request) {
|
||||
$viewer = $request->getViewer();
|
||||
|
||||
$channels = id(new PhabricatorChatLogChannelQuery())
|
||||
->setViewer($user)
|
||||
->setViewer($viewer)
|
||||
->execute();
|
||||
|
||||
$list = new PHUIObjectItemListView();
|
||||
|
|
|
@ -3,19 +3,13 @@
|
|||
final class PhabricatorChatLogChannelLogController
|
||||
extends PhabricatorChatLogController {
|
||||
|
||||
private $channelID;
|
||||
|
||||
public function shouldAllowPublic() {
|
||||
return true;
|
||||
}
|
||||
|
||||
public function willProcessRequest(array $data) {
|
||||
$this->channelID = $data['channelID'];
|
||||
}
|
||||
|
||||
public function processRequest() {
|
||||
$request = $this->getRequest();
|
||||
$user = $request->getUser();
|
||||
public function handleRequest(AphrontRequest $request) {
|
||||
$viewer = $request->getViewer();
|
||||
$id = $request->getURIData('channelID');
|
||||
|
||||
$uri = clone $request->getRequestURI();
|
||||
$uri->setQueryParams(array());
|
||||
|
@ -25,12 +19,12 @@ final class PhabricatorChatLogChannelLogController
|
|||
$pager->setPageSize(250);
|
||||
|
||||
$query = id(new PhabricatorChatLogQuery())
|
||||
->setViewer($user)
|
||||
->withChannelIDs(array($this->channelID));
|
||||
->setViewer($viewer)
|
||||
->withChannelIDs(array($id));
|
||||
|
||||
$channel = id(new PhabricatorChatLogChannelQuery())
|
||||
->setViewer($user)
|
||||
->withIDs(array($this->channelID))
|
||||
->setViewer($viewer)
|
||||
->withIDs(array($id))
|
||||
->executeOne();
|
||||
|
||||
if (!$channel) {
|
||||
|
@ -115,7 +109,7 @@ final class PhabricatorChatLogChannelLogController
|
|||
|
||||
$href = $uri->alter('at', $block['id']);
|
||||
$timestamp = $block['epoch'];
|
||||
$timestamp = phabricator_datetime($timestamp, $user);
|
||||
$timestamp = phabricator_datetime($timestamp, $viewer);
|
||||
$timestamp = phutil_tag(
|
||||
'a',
|
||||
array(
|
||||
|
@ -189,7 +183,7 @@ final class PhabricatorChatLogChannelLogController
|
|||
->addTextCrumb($channel->getChannelName(), $uri);
|
||||
|
||||
$form = id(new AphrontFormView())
|
||||
->setUser($user)
|
||||
->setUser($viewer)
|
||||
->setMethod('GET')
|
||||
->setAction($uri)
|
||||
->appendChild(
|
||||
|
@ -273,7 +267,7 @@ final class PhabricatorChatLogChannelLogController
|
|||
AphrontRequest $request,
|
||||
PhabricatorChatLogQuery $query) {
|
||||
|
||||
$user = $request->getUser();
|
||||
$viewer = $request->getViewer();
|
||||
|
||||
$at_id = $request->getInt('at');
|
||||
$at_date = $request->getStr('date');
|
||||
|
@ -298,7 +292,7 @@ final class PhabricatorChatLogChannelLogController
|
|||
);
|
||||
|
||||
} else if ($at_date) {
|
||||
$timestamp = PhabricatorTime::parseLocalTime($at_date, $user);
|
||||
$timestamp = PhabricatorTime::parseLocalTime($at_date, $viewer);
|
||||
|
||||
if ($timestamp) {
|
||||
$context_logs = $query
|
||||
|
|
|
@ -1,18 +1,41 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* @task status Method Status
|
||||
* @task pager Paging Results
|
||||
* @task info Method Information
|
||||
* @task status Method Status
|
||||
* @task pager Paging Results
|
||||
*/
|
||||
abstract class ConduitAPIMethod
|
||||
extends Phobject
|
||||
implements PhabricatorPolicyInterface {
|
||||
|
||||
|
||||
const METHOD_STATUS_STABLE = 'stable';
|
||||
const METHOD_STATUS_UNSTABLE = 'unstable';
|
||||
const METHOD_STATUS_DEPRECATED = 'deprecated';
|
||||
|
||||
|
||||
/**
|
||||
* Get a short, human-readable text summary of the method.
|
||||
*
|
||||
* @return string Short summary of method.
|
||||
* @task info
|
||||
*/
|
||||
public function getMethodSummary() {
|
||||
return $this->getMethodDescription();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Get a detailed description of the method.
|
||||
*
|
||||
* This method should return remarkup.
|
||||
*
|
||||
* @return string Detailed description of the method.
|
||||
* @task info
|
||||
*/
|
||||
abstract public function getMethodDescription();
|
||||
|
||||
abstract protected function defineParamTypes();
|
||||
abstract protected function defineReturnType();
|
||||
|
||||
|
|
|
@ -174,7 +174,7 @@ final class PhabricatorConduitSearchEngine
|
|||
$item = id(new PHUIObjectItemView())
|
||||
->setHeader($method_name)
|
||||
->setHref($this->getApplicationURI('method/'.$method_name.'/'))
|
||||
->addAttribute($method->getMethodDescription());
|
||||
->addAttribute($method->getMethodSummary());
|
||||
|
||||
switch ($method->getMethodStatus()) {
|
||||
case ConduitAPIMethod::METHOD_STATUS_STABLE:
|
||||
|
|
|
@ -3,9 +3,8 @@
|
|||
final class PhabricatorConfigAllController
|
||||
extends PhabricatorConfigController {
|
||||
|
||||
public function processRequest() {
|
||||
$request = $this->getRequest();
|
||||
$user = $request->getUser();
|
||||
public function handleRequest(AphrontRequest $request) {
|
||||
$viewer = $request->getViewer();
|
||||
|
||||
$db_values = id(new PhabricatorConfigEntry())
|
||||
->loadAllWhere('namespace = %s', 'default');
|
||||
|
|
|
@ -3,9 +3,8 @@
|
|||
final class PhabricatorConfigDatabaseIssueController
|
||||
extends PhabricatorConfigDatabaseController {
|
||||
|
||||
public function processRequest() {
|
||||
$request = $this->getRequest();
|
||||
$viewer = $request->getUser();
|
||||
public function handleRequest(AphrontRequest $request) {
|
||||
$viewer = $request->getViewer();
|
||||
|
||||
$query = $this->buildSchemaQuery();
|
||||
|
||||
|
|
|
@ -8,16 +8,12 @@ final class PhabricatorConfigDatabaseStatusController
|
|||
private $column;
|
||||
private $key;
|
||||
|
||||
public function willProcessRequest(array $data) {
|
||||
$this->database = idx($data, 'database');
|
||||
$this->table = idx($data, 'table');
|
||||
$this->column = idx($data, 'column');
|
||||
$this->key = idx($data, 'key');
|
||||
}
|
||||
|
||||
public function processRequest() {
|
||||
$request = $this->getRequest();
|
||||
$viewer = $request->getUser();
|
||||
public function handleRequest(AphrontRequest $request) {
|
||||
$viewer = $request->getViewer();
|
||||
$this->database = $request->getURIData('database');
|
||||
$this->table = $request->getURIData('table');
|
||||
$this->column = $request->getURIData('column');
|
||||
$this->key = $request->getURIData('key');
|
||||
|
||||
$query = $this->buildSchemaQuery();
|
||||
|
||||
|
|
|
@ -3,25 +3,19 @@
|
|||
final class PhabricatorConfigEditController
|
||||
extends PhabricatorConfigController {
|
||||
|
||||
private $key;
|
||||
|
||||
public function willProcessRequest(array $data) {
|
||||
$this->key = $data['key'];
|
||||
}
|
||||
|
||||
public function processRequest() {
|
||||
$request = $this->getRequest();
|
||||
$user = $request->getUser();
|
||||
public function handleRequest(AphrontRequest $request) {
|
||||
$viewer = $request->getViewer();
|
||||
$key = $request->getURIData('key');
|
||||
|
||||
|
||||
$options = PhabricatorApplicationConfigOptions::loadAllOptions();
|
||||
if (empty($options[$this->key])) {
|
||||
if (empty($options[$key])) {
|
||||
$ancient = PhabricatorExtraConfigSetupCheck::getAncientConfig();
|
||||
if (isset($ancient[$this->key])) {
|
||||
if (isset($ancient[$key])) {
|
||||
$desc = pht(
|
||||
"This configuration has been removed. You can safely delete ".
|
||||
"it.\n\n%s",
|
||||
$ancient[$this->key]);
|
||||
$ancient[$key]);
|
||||
} else {
|
||||
$desc = pht(
|
||||
'This configuration option is unknown. It may be misspelled, '.
|
||||
|
@ -32,14 +26,14 @@ final class PhabricatorConfigEditController
|
|||
// longer exists. Allow it to be edited so it can be reviewed and
|
||||
// deleted.
|
||||
$option = id(new PhabricatorConfigOption())
|
||||
->setKey($this->key)
|
||||
->setKey($key)
|
||||
->setType('wild')
|
||||
->setDefault(null)
|
||||
->setDescription($desc);
|
||||
$group = null;
|
||||
$group_uri = $this->getApplicationURI();
|
||||
} else {
|
||||
$option = $options[$this->key];
|
||||
$option = $options[$key];
|
||||
$group = $option->getGroup();
|
||||
$group_uri = $this->getApplicationURI('group/'.$group->getKey().'/');
|
||||
}
|
||||
|
@ -57,11 +51,11 @@ final class PhabricatorConfigEditController
|
|||
$config_entry = id(new PhabricatorConfigEntry())
|
||||
->loadOneWhere(
|
||||
'configKey = %s AND namespace = %s',
|
||||
$this->key,
|
||||
$key,
|
||||
'default');
|
||||
if (!$config_entry) {
|
||||
$config_entry = id(new PhabricatorConfigEntry())
|
||||
->setConfigKey($this->key)
|
||||
->setConfigKey($key)
|
||||
->setNamespace('default')
|
||||
->setIsDeleted(true);
|
||||
$config_entry->setPHID($config_entry->generatePHID());
|
||||
|
@ -81,7 +75,7 @@ final class PhabricatorConfigEditController
|
|||
if (!$errors) {
|
||||
|
||||
$editor = id(new PhabricatorConfigEditor())
|
||||
->setActor($user)
|
||||
->setActor($viewer)
|
||||
->setContinueOnNoEffect(true)
|
||||
->setContentSourceFromRequest($request);
|
||||
|
||||
|
@ -138,7 +132,7 @@ final class PhabricatorConfigEditController
|
|||
}
|
||||
|
||||
$engine = new PhabricatorMarkupEngine();
|
||||
$engine->setViewer($user);
|
||||
$engine->setViewer($viewer);
|
||||
$engine->addObject($option, 'description');
|
||||
$engine->process();
|
||||
$description = phutil_tag(
|
||||
|
@ -149,7 +143,7 @@ final class PhabricatorConfigEditController
|
|||
$engine->getOutput($option, 'description'));
|
||||
|
||||
$form
|
||||
->setUser($user)
|
||||
->setUser($viewer)
|
||||
->addHiddenInput('issue', $request->getStr('issue'))
|
||||
->appendChild(
|
||||
id(new AphrontFormMarkupControl())
|
||||
|
@ -194,7 +188,7 @@ final class PhabricatorConfigEditController
|
|||
->setValue($this->renderDefaults($option, $config_entry)));
|
||||
}
|
||||
|
||||
$title = pht('Edit %s', $this->key);
|
||||
$title = pht('Edit %s', $key);
|
||||
$short = pht('Edit');
|
||||
|
||||
$form_box = id(new PHUIObjectBoxView())
|
||||
|
@ -212,7 +206,7 @@ final class PhabricatorConfigEditController
|
|||
$crumbs->addTextCrumb($group->getName(), $group_uri);
|
||||
}
|
||||
|
||||
$crumbs->addTextCrumb($this->key, '/config/edit/'.$this->key);
|
||||
$crumbs->addTextCrumb($key, '/config/edit/'.$key);
|
||||
|
||||
$timeline = $this->buildTransactionTimeline(
|
||||
$config_entry,
|
||||
|
|
|
@ -3,18 +3,12 @@
|
|||
final class PhabricatorConfigGroupController
|
||||
extends PhabricatorConfigController {
|
||||
|
||||
private $groupKey;
|
||||
|
||||
public function willProcessRequest(array $data) {
|
||||
$this->groupKey = $data['key'];
|
||||
}
|
||||
|
||||
public function processRequest() {
|
||||
$request = $this->getRequest();
|
||||
$user = $request->getUser();
|
||||
public function handleRequest(AphrontRequest $request) {
|
||||
$viewer = $request->getViewer();
|
||||
$group_key = $request->getURIData('key');
|
||||
|
||||
$groups = PhabricatorApplicationConfigOptions::loadAll();
|
||||
$options = idx($groups, $this->groupKey);
|
||||
$options = idx($groups, $group_key);
|
||||
if (!$options) {
|
||||
return new Aphront404Response();
|
||||
}
|
||||
|
|
|
@ -3,12 +3,12 @@
|
|||
final class PhabricatorConfigHistoryController
|
||||
extends PhabricatorConfigController {
|
||||
|
||||
public function processRequest() {
|
||||
$request = $this->getRequest();
|
||||
$user = $request->getUser();
|
||||
public function handleRequest(AphrontRequest $request) {
|
||||
$viewer = $request->getViewer();
|
||||
$id = $request->getURIData('id');
|
||||
|
||||
$xactions = id(new PhabricatorConfigTransactionQuery())
|
||||
->setViewer($user)
|
||||
->setViewer($viewer)
|
||||
->needComments(true)
|
||||
->execute();
|
||||
|
||||
|
@ -19,7 +19,7 @@ final class PhabricatorConfigHistoryController
|
|||
$view = $xaction->getApplicationTransactionViewObject();
|
||||
|
||||
$timeline = $view
|
||||
->setUser($user)
|
||||
->setUser($viewer)
|
||||
->setTransactions($xactions)
|
||||
->setRenderAsFeed(true)
|
||||
->setObjectPHID(PhabricatorPHIDConstants::PHID_VOID);
|
||||
|
|
|
@ -3,38 +3,33 @@
|
|||
final class PhabricatorConfigIgnoreController
|
||||
extends PhabricatorConfigController {
|
||||
|
||||
private $verb;
|
||||
private $issue;
|
||||
public function handleRequest(AphrontRequest $request) {
|
||||
$viewer = $request->getViewer();
|
||||
$issue = $request->getURIData('key');
|
||||
$verb = $request->getURIData('verb');
|
||||
|
||||
public function willProcessRequest(array $data) {
|
||||
$this->verb = $data['verb'];
|
||||
$this->issue = $data['key'];
|
||||
}
|
||||
|
||||
public function processRequest() {
|
||||
$request = $this->getRequest();
|
||||
$issue_uri = $this->getApplicationURI('issue/'.$this->issue.'/');
|
||||
$issue_uri = $this->getApplicationURI('issue/'.$issue.'/');
|
||||
|
||||
if ($request->isDialogFormPost()) {
|
||||
$this->manageApplication();
|
||||
$this->manageApplication($issue);
|
||||
return id(new AphrontRedirectResponse())->setURI($issue_uri);
|
||||
}
|
||||
|
||||
if ($this->verb == 'ignore') {
|
||||
if ($verb == 'ignore') {
|
||||
$title = pht('Really ignore this setup issue?');
|
||||
$submit_title = pht('Ignore');
|
||||
$body = pht(
|
||||
"You can ignore an issue if you don't want to fix it, or plan to ".
|
||||
"fix it later. Ignored issues won't appear on every page but will ".
|
||||
"still be shown in the list of open issues.");
|
||||
} else if ($this->verb == 'unignore') {
|
||||
} else if ($verb == 'unignore') {
|
||||
$title = pht('Unignore this setup issue?');
|
||||
$submit_title = pht('Unignore');
|
||||
$body = pht(
|
||||
'This issue will no longer be suppressed, and will return to its '.
|
||||
'rightful place as a global setup warning.');
|
||||
} else {
|
||||
throw new Exception(pht('Unrecognized verb: %s', $this->verb));
|
||||
throw new Exception(pht('Unrecognized verb: %s', $verb));
|
||||
}
|
||||
|
||||
$dialog = id(new AphrontDialogView())
|
||||
|
@ -47,15 +42,15 @@ final class PhabricatorConfigIgnoreController
|
|||
return id(new AphrontDialogResponse())->setDialog($dialog);
|
||||
}
|
||||
|
||||
public function manageApplication() {
|
||||
public function manageApplication($issue) {
|
||||
$key = 'config.ignore-issues';
|
||||
$config_entry = PhabricatorConfigEntry::loadConfigEntry($key);
|
||||
$list = $config_entry->getValue();
|
||||
|
||||
if (isset($list[$this->issue])) {
|
||||
unset($list[$this->issue]);
|
||||
if (isset($list[$issue])) {
|
||||
unset($list[$issue]);
|
||||
} else {
|
||||
$list[$this->issue] = true;
|
||||
$list[$issue] = true;
|
||||
}
|
||||
|
||||
PhabricatorConfigEditor::storeNewValue(
|
||||
|
|
|
@ -3,9 +3,8 @@
|
|||
final class PhabricatorConfigIssueListController
|
||||
extends PhabricatorConfigController {
|
||||
|
||||
public function processRequest() {
|
||||
$request = $this->getRequest();
|
||||
$user = $request->getUser();
|
||||
public function handleRequest(AphrontRequest $request) {
|
||||
$viewer = $request->getViewer();
|
||||
|
||||
$nav = $this->buildSideNavView();
|
||||
$nav->selectFilter('issue/');
|
||||
|
|
|
@ -3,21 +3,15 @@
|
|||
final class PhabricatorConfigIssueViewController
|
||||
extends PhabricatorConfigController {
|
||||
|
||||
private $issueKey;
|
||||
|
||||
public function willProcessRequest(array $data) {
|
||||
$this->issueKey = $data['key'];
|
||||
}
|
||||
|
||||
public function processRequest() {
|
||||
$request = $this->getRequest();
|
||||
$user = $request->getUser();
|
||||
public function handleRequest(AphrontRequest $request) {
|
||||
$viewer = $request->getViewer();
|
||||
$issue_key = $request->getURIData('key');
|
||||
|
||||
$issues = PhabricatorSetupCheck::runAllChecks();
|
||||
PhabricatorSetupCheck::setOpenSetupIssueKeys(
|
||||
PhabricatorSetupCheck::getUnignoredIssueKeys($issues));
|
||||
|
||||
if (empty($issues[$this->issueKey])) {
|
||||
if (empty($issues[$issue_key])) {
|
||||
$content = id(new PHUIInfoView())
|
||||
->setSeverity(PHUIInfoView::SEVERITY_NOTICE)
|
||||
->setTitle(pht('Issue Resolved'))
|
||||
|
@ -31,7 +25,7 @@ final class PhabricatorConfigIssueViewController
|
|||
pht('Return to Open Issue List')));
|
||||
$title = pht('Resolved Issue');
|
||||
} else {
|
||||
$issue = $issues[$this->issueKey];
|
||||
$issue = $issues[$issue_key];
|
||||
$content = $this->renderIssue($issue);
|
||||
$title = $issue->getShortName();
|
||||
}
|
||||
|
|
|
@ -3,9 +3,8 @@
|
|||
final class PhabricatorConfigListController
|
||||
extends PhabricatorConfigController {
|
||||
|
||||
public function processRequest() {
|
||||
$request = $this->getRequest();
|
||||
$user = $request->getUser();
|
||||
public function handleRequest(AphrontRequest $request) {
|
||||
$viewer = $request->getViewer();
|
||||
|
||||
$nav = $this->buildSideNavView();
|
||||
$nav->selectFilter('/');
|
||||
|
|
|
@ -3,9 +3,8 @@
|
|||
final class PhabricatorConfigWelcomeController
|
||||
extends PhabricatorConfigController {
|
||||
|
||||
public function processRequest() {
|
||||
$request = $this->getRequest();
|
||||
$viewer = $request->getUser();
|
||||
public function handleRequest(AphrontRequest $request) {
|
||||
$viewer = $request->getViewer();
|
||||
|
||||
$nav = $this->buildSideNavView();
|
||||
$nav->selectFilter('welcome/');
|
||||
|
|
|
@ -7,6 +7,7 @@ final class ConpherenceNewRoomController extends ConpherenceController {
|
|||
|
||||
$title = pht('New Room');
|
||||
$e_title = true;
|
||||
$v_message = null;
|
||||
$validation_exception = null;
|
||||
|
||||
$conpherence = ConpherenceThread::initializeNewRoom($user);
|
||||
|
@ -35,12 +36,12 @@ final class ConpherenceNewRoomController extends ConpherenceController {
|
|||
->setTransactionType(PhabricatorTransactions::TYPE_JOIN_POLICY)
|
||||
->setNewValue($request->getStr('joinPolicy'));
|
||||
|
||||
$message = $request->getStr('message');
|
||||
if ($message) {
|
||||
$v_message = $request->getStr('message');
|
||||
if (strlen($v_message)) {
|
||||
$message_xactions = $editor->generateTransactionsFromText(
|
||||
$user,
|
||||
$conpherence,
|
||||
$message);
|
||||
$v_message);
|
||||
$xactions = array_merge($xactions, $message_xactions);
|
||||
}
|
||||
|
||||
|
@ -121,7 +122,8 @@ final class ConpherenceNewRoomController extends ConpherenceController {
|
|||
id(new PhabricatorRemarkupControl())
|
||||
->setUser($user)
|
||||
->setName('message')
|
||||
->setLabel(pht('First Message')));
|
||||
->setLabel(pht('First Message'))
|
||||
->setValue($v_message));
|
||||
|
||||
$dialog->appendChild($form);
|
||||
|
||||
|
|
|
@ -3,19 +3,13 @@
|
|||
final class PhabricatorCountdownDeleteController
|
||||
extends PhabricatorCountdownController {
|
||||
|
||||
private $id;
|
||||
|
||||
public function willProcessRequest(array $data) {
|
||||
$this->id = $data['id'];
|
||||
}
|
||||
|
||||
public function processRequest() {
|
||||
$request = $this->getRequest();
|
||||
$user = $request->getUser();
|
||||
public function handleRequest(AphrontRequest $request) {
|
||||
$viewer = $request->getViewer();
|
||||
$id = $request->getURIData('id');
|
||||
|
||||
$countdown = id(new PhabricatorCountdownQuery())
|
||||
->setViewer($user)
|
||||
->withIDs(array($this->id))
|
||||
->setViewer($viewer)
|
||||
->withIDs(array($id))
|
||||
->requireCapabilities(
|
||||
array(
|
||||
PhabricatorPolicyCapability::CAN_VIEW,
|
||||
|
|
|
@ -3,19 +3,15 @@
|
|||
final class PhabricatorCountdownListController
|
||||
extends PhabricatorCountdownController {
|
||||
|
||||
private $queryKey;
|
||||
|
||||
public function shouldAllowPublic() {
|
||||
return true;
|
||||
}
|
||||
|
||||
public function willProcessRequest(array $data) {
|
||||
$this->queryKey = idx($data, 'queryKey');
|
||||
}
|
||||
public function handleRequest(AphrontRequest $request) {
|
||||
$querykey = $request->getURIData('queryKey');
|
||||
|
||||
public function processRequest() {
|
||||
$controller = id(new PhabricatorApplicationSearchController())
|
||||
->setQueryKey($this->queryKey)
|
||||
->setQueryKey($querykey)
|
||||
->setSearchEngine(new PhabricatorCountdownSearchEngine())
|
||||
->setNavigation($this->buildSideNavView());
|
||||
|
||||
|
|
|
@ -160,7 +160,7 @@ final class PhabricatorCountdownEditor
|
|||
|
||||
protected function buildMailTemplate(PhabricatorLiskDAO $object) {
|
||||
$monogram = $object->getMonogram();
|
||||
$name = $object->getName();
|
||||
$name = $object->getTitle();
|
||||
|
||||
return id(new PhabricatorMetaMTAMail())
|
||||
->setSubject("{$monogram}: {$name}")
|
||||
|
@ -172,6 +172,13 @@ final class PhabricatorCountdownEditor
|
|||
array $xactions) {
|
||||
|
||||
$body = parent::buildMailBody($object, $xactions);
|
||||
$description = $object->getDescription();
|
||||
|
||||
if (strlen($description)) {
|
||||
$body->addTextSection(
|
||||
pht('COUNTDOWN DESCRIPTION'),
|
||||
$object->getDescription());
|
||||
}
|
||||
|
||||
$body->addLinkSection(
|
||||
pht('COUNTDOWN DETAIL'),
|
||||
|
@ -181,11 +188,13 @@ final class PhabricatorCountdownEditor
|
|||
}
|
||||
|
||||
protected function getMailTo(PhabricatorLiskDAO $object) {
|
||||
return array($object->getAuthorPHID());
|
||||
return array(
|
||||
$object->getAuthorPHID(),
|
||||
$this->requireActor()->getPHID(),
|
||||
);
|
||||
}
|
||||
|
||||
protected function getMailSubjectPrefix() {
|
||||
return 'Countdown';
|
||||
return '[Countdown]';
|
||||
}
|
||||
|
||||
protected function buildReplyHandler(PhabricatorLiskDAO $object) {
|
||||
|
|
|
@ -0,0 +1,28 @@
|
|||
<?php
|
||||
|
||||
final class PhabricatorCountdownMailReceiver
|
||||
extends PhabricatorObjectMailReceiver {
|
||||
|
||||
public function isEnabled() {
|
||||
return PhabricatorApplication::isClassInstalled(
|
||||
'PhabricatorCountdownApplication');
|
||||
}
|
||||
|
||||
protected function getObjectPattern() {
|
||||
return 'C[1-9]\d*';
|
||||
}
|
||||
|
||||
protected function loadObject($pattern, PhabricatorUser $viewer) {
|
||||
$id = (int)substr($pattern, 4);
|
||||
|
||||
return id(new PhabricatorCountdownQuery())
|
||||
->setViewer($viewer)
|
||||
->withIDs(array($id))
|
||||
->executeOne();
|
||||
}
|
||||
|
||||
protected function getTransactionReplyHandler() {
|
||||
return new PhabricatorCountdownReplyHandler();
|
||||
}
|
||||
|
||||
}
|
|
@ -102,13 +102,9 @@ final class PhabricatorCountdownSearchEngine
|
|||
foreach ($countdowns as $countdown) {
|
||||
$id = $countdown->getID();
|
||||
$ended = false;
|
||||
$icon = 'fa-clock-o';
|
||||
$color = 'green';
|
||||
$epoch = $countdown->getEpoch();
|
||||
if ($epoch <= PhabricatorTime::getNow()) {
|
||||
$ended = true;
|
||||
$icon = 'fa-check-square-o';
|
||||
$color = 'grey';
|
||||
}
|
||||
|
||||
$item = id(new PHUIObjectItemView())
|
||||
|
@ -116,7 +112,6 @@ final class PhabricatorCountdownSearchEngine
|
|||
->setObject($countdown)
|
||||
->setObjectName("C{$id}")
|
||||
->setHeader($countdown->getTitle())
|
||||
->setStatusIcon($icon.' '.$color)
|
||||
->setHref($this->getApplicationURI("{$id}/"))
|
||||
->addByline(
|
||||
pht(
|
||||
|
@ -128,6 +123,14 @@ final class PhabricatorCountdownSearchEngine
|
|||
pht('Launched on %s', phabricator_datetime($epoch, $viewer)));
|
||||
$item->setDisabled(true);
|
||||
} else {
|
||||
$time_left = ($epoch - PhabricatorTime::getNow());
|
||||
$num = round($time_left / (60 * 60 * 24));
|
||||
$noun = pht('Days');
|
||||
if ($num < 1) {
|
||||
$num = round($time_left / (60 * 60), 1);
|
||||
$noun = pht('Hours');
|
||||
}
|
||||
$item->setCountdown($num, $noun);
|
||||
$item->addAttribute(
|
||||
phabricator_datetime($epoch, $viewer));
|
||||
}
|
||||
|
|
|
@ -16,7 +16,7 @@ final class PhabricatorCountdown extends PhabricatorCountdownDAO
|
|||
protected $description;
|
||||
protected $viewPolicy;
|
||||
protected $editPolicy;
|
||||
|
||||
protected $mailKey;
|
||||
protected $spacePHID;
|
||||
|
||||
public static function initializeNewCountdown(PhabricatorUser $actor) {
|
||||
|
@ -41,6 +41,7 @@ final class PhabricatorCountdown extends PhabricatorCountdownDAO
|
|||
self::CONFIG_COLUMN_SCHEMA => array(
|
||||
'title' => 'text255',
|
||||
'description' => 'text',
|
||||
'mailKey' => 'bytes20',
|
||||
),
|
||||
) + parent::getConfiguration();
|
||||
}
|
||||
|
@ -54,6 +55,13 @@ final class PhabricatorCountdown extends PhabricatorCountdownDAO
|
|||
return 'C'.$this->getID();
|
||||
}
|
||||
|
||||
public function save() {
|
||||
if (!$this->getMailKey()) {
|
||||
$this->setMailKey(Filesystem::readRandomCharacters(20));
|
||||
}
|
||||
return parent::save();
|
||||
}
|
||||
|
||||
|
||||
/* -( PhabricatorSubscribableInterface )----------------------------------- */
|
||||
|
||||
|
|
|
@ -152,4 +152,29 @@ final class PhabricatorCountdownTransaction
|
|||
return $tags;
|
||||
}
|
||||
|
||||
public function shouldHide() {
|
||||
$old = $this->getOldValue();
|
||||
switch ($this->getTransactionType()) {
|
||||
case self::TYPE_DESCRIPTION:
|
||||
return ($old === null);
|
||||
}
|
||||
return parent::shouldHide();
|
||||
}
|
||||
|
||||
public function hasChangeDetails() {
|
||||
switch ($this->getTransactionType()) {
|
||||
case self::TYPE_DESCRIPTION:
|
||||
return ($this->getOldValue() !== null);
|
||||
}
|
||||
|
||||
return parent::hasChangeDetails();
|
||||
}
|
||||
|
||||
public function renderChangeDetails(PhabricatorUser $viewer) {
|
||||
return $this->renderTextCorpusChangeDetails(
|
||||
$viewer,
|
||||
$this->getOldValue(),
|
||||
$this->getNewValue());
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -56,6 +56,16 @@ final class PhabricatorCountdownView extends AphrontTagView {
|
|||
javelin_tag('td', array('sigil' => 'phabricator-timer-seconds'), '-'),
|
||||
);
|
||||
|
||||
$epoch = $countdown->getEpoch();
|
||||
$launch_date = phabricator_datetime($epoch, $this->getUser());
|
||||
$foot = phutil_tag(
|
||||
'td',
|
||||
array(
|
||||
'colspan' => '4',
|
||||
'class' => 'phabricator-timer-foot',
|
||||
),
|
||||
$launch_date);
|
||||
|
||||
$container = celerity_generate_unique_node_id();
|
||||
$content = phutil_tag(
|
||||
'div',
|
||||
|
@ -65,6 +75,7 @@ final class PhabricatorCountdownView extends AphrontTagView {
|
|||
phutil_tag('table', array('class' => 'phabricator-timer-table'), array(
|
||||
phutil_tag('tr', array(), $ths),
|
||||
phutil_tag('tr', array(), $dashes),
|
||||
phutil_tag('tr', array(), $foot),
|
||||
)),
|
||||
));
|
||||
|
||||
|
|
|
@ -222,7 +222,6 @@ final class PhabricatorDaemonConsoleController
|
|||
$nav,
|
||||
array(
|
||||
'title' => pht('Console'),
|
||||
'device' => false,
|
||||
));
|
||||
}
|
||||
|
||||
|
|
|
@ -56,8 +56,14 @@ final class DifferentialUnitField
|
|||
|
||||
protected function newHarbormasterMessageView(array $messages) {
|
||||
foreach ($messages as $key => $message) {
|
||||
if ($message->getResult() == ArcanistUnitTestResult::RESULT_PASS) {
|
||||
unset($messages[$key]);
|
||||
switch ($message->getResult()) {
|
||||
case ArcanistUnitTestResult::RESULT_PASS:
|
||||
case ArcanistUnitTestResult::RESULT_SKIP:
|
||||
// Don't show "Pass" or "Skip" in the UI since they aren't very
|
||||
// interesting. The user can click through to the full results if
|
||||
// they want details.
|
||||
unset($messages[$key]);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -131,10 +131,11 @@ final class DifferentialDiffEditor
|
|||
$rules = mpull($rules, null, 'getID');
|
||||
|
||||
$effects = $engine->applyRules($rules, $adapter);
|
||||
$action_block = DifferentialBlockHeraldAction::ACTIONCONST;
|
||||
|
||||
$blocking_effect = null;
|
||||
foreach ($effects as $effect) {
|
||||
if ($effect->getAction() == HeraldAdapter::ACTION_BLOCK) {
|
||||
if ($effect->getAction() == $action_block) {
|
||||
$blocking_effect = $effect;
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -1588,112 +1588,9 @@ final class DifferentialTransactionEditor
|
|||
$revision,
|
||||
$revision->getActiveDiff());
|
||||
|
||||
$reviewers = $revision->getReviewerStatus();
|
||||
$reviewer_phids = mpull($reviewers, 'getReviewerPHID');
|
||||
|
||||
$adapter->setExplicitReviewers($reviewer_phids);
|
||||
|
||||
return $adapter;
|
||||
}
|
||||
|
||||
protected function didApplyHeraldRules(
|
||||
PhabricatorLiskDAO $object,
|
||||
HeraldAdapter $adapter,
|
||||
HeraldTranscript $transcript) {
|
||||
|
||||
$xactions = array();
|
||||
|
||||
// Build a transaction to adjust reviewers.
|
||||
$reviewers = array(
|
||||
DifferentialReviewerStatus::STATUS_ADDED =>
|
||||
array_keys($adapter->getReviewersAddedByHerald()),
|
||||
DifferentialReviewerStatus::STATUS_BLOCKING =>
|
||||
array_keys($adapter->getBlockingReviewersAddedByHerald()),
|
||||
);
|
||||
|
||||
$old_reviewers = $object->getReviewerStatus();
|
||||
$old_reviewers = mpull($old_reviewers, null, 'getReviewerPHID');
|
||||
|
||||
$value = array();
|
||||
foreach ($reviewers as $status => $phids) {
|
||||
foreach ($phids as $phid) {
|
||||
if ($phid == $object->getAuthorPHID()) {
|
||||
// Don't try to add the revision's author as a reviewer, since this
|
||||
// isn't valid and doesn't make sense.
|
||||
continue;
|
||||
}
|
||||
|
||||
// If the target is already a reviewer, don't try to change anything
|
||||
// if their current status is at least as strong as the new status.
|
||||
// For example, don't downgrade an "Accepted" to a "Blocking Reviewer".
|
||||
$old_reviewer = idx($old_reviewers, $phid);
|
||||
if ($old_reviewer) {
|
||||
$old_status = $old_reviewer->getStatus();
|
||||
|
||||
$old_strength = DifferentialReviewerStatus::getStatusStrength(
|
||||
$old_status);
|
||||
$new_strength = DifferentialReviewerStatus::getStatusStrength(
|
||||
$status);
|
||||
|
||||
if ($new_strength <= $old_strength) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
$value['+'][$phid] = array(
|
||||
'data' => array(
|
||||
'status' => $status,
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
if ($value) {
|
||||
$edge_reviewer = DifferentialRevisionHasReviewerEdgeType::EDGECONST;
|
||||
|
||||
$xactions[] = id(new DifferentialTransaction())
|
||||
->setTransactionType(PhabricatorTransactions::TYPE_EDGE)
|
||||
->setMetadataValue('edge:type', $edge_reviewer)
|
||||
->setNewValue($value);
|
||||
}
|
||||
|
||||
// Require legalpad document signatures.
|
||||
$legal_phids = $adapter->getRequiredSignatureDocumentPHIDs();
|
||||
if ($legal_phids) {
|
||||
// We only require signatures of documents which have not already
|
||||
// been signed. In general, this reduces the amount of churn that
|
||||
// signature rules cause.
|
||||
|
||||
$signatures = id(new LegalpadDocumentSignatureQuery())
|
||||
->setViewer(PhabricatorUser::getOmnipotentUser())
|
||||
->withDocumentPHIDs($legal_phids)
|
||||
->withSignerPHIDs(array($object->getAuthorPHID()))
|
||||
->execute();
|
||||
$signed_phids = mpull($signatures, 'getDocumentPHID');
|
||||
$legal_phids = array_diff($legal_phids, $signed_phids);
|
||||
|
||||
// If we still have something to trigger, add the edges.
|
||||
if ($legal_phids) {
|
||||
$edge_legal = LegalpadObjectNeedsSignatureEdgeType::EDGECONST;
|
||||
$xactions[] = id(new DifferentialTransaction())
|
||||
->setTransactionType(PhabricatorTransactions::TYPE_EDGE)
|
||||
->setMetadataValue('edge:type', $edge_legal)
|
||||
->setNewValue(
|
||||
array(
|
||||
'+' => array_fuse($legal_phids),
|
||||
));
|
||||
}
|
||||
}
|
||||
|
||||
// Apply build plans.
|
||||
HarbormasterBuildable::applyBuildPlans(
|
||||
$adapter->getDiff()->getPHID(),
|
||||
$adapter->getPHID(),
|
||||
$adapter->getBuildPlans());
|
||||
|
||||
return $xactions;
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the table which links Differential revisions to paths they affect,
|
||||
* so Diffusion can efficiently find pending revisions for a given file.
|
||||
|
|
|
@ -0,0 +1,56 @@
|
|||
<?php
|
||||
|
||||
final class DifferentialBlockHeraldAction
|
||||
extends HeraldAction {
|
||||
|
||||
const ACTIONCONST = 'differential.block';
|
||||
|
||||
const DO_BLOCK = 'do.block';
|
||||
|
||||
public function getHeraldActionName() {
|
||||
return pht('Block diff with message');
|
||||
}
|
||||
|
||||
public function getActionGroupKey() {
|
||||
return HeraldApplicationActionGroup::ACTIONGROUPKEY;
|
||||
}
|
||||
|
||||
public function supportsObject($object) {
|
||||
return ($object instanceof DifferentialDiff);
|
||||
}
|
||||
|
||||
public function supportsRuleType($rule_type) {
|
||||
return ($rule_type != HeraldRuleTypeConfig::RULE_TYPE_PERSONAL);
|
||||
}
|
||||
|
||||
public function applyEffect($object, HeraldEffect $effect) {
|
||||
// This rule intentionally has no direct effect: the caller handles it
|
||||
// after executing Herald.
|
||||
$this->logEffect(self::DO_BLOCK);
|
||||
}
|
||||
|
||||
public function getHeraldActionStandardType() {
|
||||
return self::STANDARD_TEXT;
|
||||
}
|
||||
|
||||
public function renderActionDescription($value) {
|
||||
return pht('Block diff with message: %s', $value);
|
||||
}
|
||||
|
||||
protected function getActionEffectMap() {
|
||||
return array(
|
||||
self::DO_BLOCK => array(
|
||||
'icon' => 'fa-stop',
|
||||
'color' => 'red',
|
||||
'name' => pht('Blocked Diff'),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
protected function renderActionEffectDescription($type, $data) {
|
||||
switch ($type) {
|
||||
case self::DO_BLOCK:
|
||||
return pht('Blocked diff.');
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,32 @@
|
|||
<?php
|
||||
|
||||
final class DifferentialReviewersAddBlockingReviewersHeraldAction
|
||||
extends DifferentialReviewersHeraldAction {
|
||||
|
||||
const ACTIONCONST = 'differential.reviewers.blocking';
|
||||
|
||||
public function getHeraldActionName() {
|
||||
return pht('Add blocking reviewers');
|
||||
}
|
||||
|
||||
public function supportsRuleType($rule_type) {
|
||||
return ($rule_type != HeraldRuleTypeConfig::RULE_TYPE_PERSONAL);
|
||||
}
|
||||
|
||||
public function applyEffect($object, HeraldEffect $effect) {
|
||||
return $this->applyReviewers($effect->getTarget(), $is_blocking = true);
|
||||
}
|
||||
|
||||
public function getHeraldActionStandardType() {
|
||||
return self::STANDARD_PHID_LIST;
|
||||
}
|
||||
|
||||
protected function getDatasource() {
|
||||
return new PhabricatorMetaMTAMailableDatasource();
|
||||
}
|
||||
|
||||
public function renderActionDescription($value) {
|
||||
return pht('Add blocking reviewers: %s.', $this->renderHandleList($value));
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,29 @@
|
|||
<?php
|
||||
|
||||
final class DifferentialReviewersAddBlockingSelfHeraldAction
|
||||
extends DifferentialReviewersHeraldAction {
|
||||
|
||||
const ACTIONCONST = 'differential.reviewers.self.blocking';
|
||||
|
||||
public function getHeraldActionName() {
|
||||
return pht('Add me as a blocking reviewer');
|
||||
}
|
||||
|
||||
public function supportsRuleType($rule_type) {
|
||||
return ($rule_type == HeraldRuleTypeConfig::RULE_TYPE_PERSONAL);
|
||||
}
|
||||
|
||||
public function applyEffect($object, HeraldEffect $effect) {
|
||||
$phid = $effect->getRule()->getAuthorPHID();
|
||||
return $this->applyReviewers(array($phid), $is_blocking = true);
|
||||
}
|
||||
|
||||
public function getHeraldActionStandardType() {
|
||||
return self::STANDARD_NONE;
|
||||
}
|
||||
|
||||
public function renderActionDescription($value) {
|
||||
return pht('Add rule author as blocking reviewer.');
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,32 @@
|
|||
<?php
|
||||
|
||||
final class DifferentialReviewersAddReviewersHeraldAction
|
||||
extends DifferentialReviewersHeraldAction {
|
||||
|
||||
const ACTIONCONST = 'differential.reviewers.add';
|
||||
|
||||
public function getHeraldActionName() {
|
||||
return pht('Add reviewers');
|
||||
}
|
||||
|
||||
public function supportsRuleType($rule_type) {
|
||||
return ($rule_type != HeraldRuleTypeConfig::RULE_TYPE_PERSONAL);
|
||||
}
|
||||
|
||||
public function applyEffect($object, HeraldEffect $effect) {
|
||||
return $this->applyReviewers($effect->getTarget(), $is_blocking = false);
|
||||
}
|
||||
|
||||
public function getHeraldActionStandardType() {
|
||||
return self::STANDARD_PHID_LIST;
|
||||
}
|
||||
|
||||
protected function getDatasource() {
|
||||
return new PhabricatorMetaMTAMailableDatasource();
|
||||
}
|
||||
|
||||
public function renderActionDescription($value) {
|
||||
return pht('Add reviewers: %s.', $this->renderHandleList($value));
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,29 @@
|
|||
<?php
|
||||
|
||||
final class DifferentialReviewersAddSelfHeraldAction
|
||||
extends DifferentialReviewersHeraldAction {
|
||||
|
||||
const ACTIONCONST = 'differential.reviewers.self.add';
|
||||
|
||||
public function getHeraldActionName() {
|
||||
return pht('Add me as a reviewer');
|
||||
}
|
||||
|
||||
public function supportsRuleType($rule_type) {
|
||||
return ($rule_type == HeraldRuleTypeConfig::RULE_TYPE_PERSONAL);
|
||||
}
|
||||
|
||||
public function applyEffect($object, HeraldEffect $effect) {
|
||||
$phid = $effect->getRule()->getAuthorPHID();
|
||||
return $this->applyReviewers(array($phid), $is_blocking = false);
|
||||
}
|
||||
|
||||
public function getHeraldActionStandardType() {
|
||||
return self::STANDARD_NONE;
|
||||
}
|
||||
|
||||
public function renderActionDescription($value) {
|
||||
return pht('Add rule author as reviewer.');
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,149 @@
|
|||
<?php
|
||||
|
||||
abstract class DifferentialReviewersHeraldAction
|
||||
extends HeraldAction {
|
||||
|
||||
const DO_AUTHORS = 'do.authors';
|
||||
const DO_ADD_REVIEWERS = 'do.add-reviewers';
|
||||
const DO_ADD_BLOCKING_REVIEWERS = 'do.add-blocking-reviewers';
|
||||
|
||||
public function getActionGroupKey() {
|
||||
return HeraldApplicationActionGroup::ACTIONGROUPKEY;
|
||||
}
|
||||
|
||||
public function supportsObject($object) {
|
||||
return ($object instanceof DifferentialRevision);
|
||||
}
|
||||
|
||||
protected function applyReviewers(array $phids, $is_blocking) {
|
||||
$adapter = $this->getAdapter();
|
||||
$object = $adapter->getObject();
|
||||
|
||||
$phids = array_fuse($phids);
|
||||
|
||||
// Don't try to add revision authors as reviewers.
|
||||
$authors = array();
|
||||
foreach ($phids as $phid) {
|
||||
if ($phid == $object->getAuthorPHID()) {
|
||||
$authors[] = $phid;
|
||||
unset($phids[$phid]);
|
||||
}
|
||||
}
|
||||
|
||||
if ($authors) {
|
||||
$this->logEffect(self::DO_AUTHORS, $authors);
|
||||
if (!$phids) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
$reviewers = $object->getReviewerStatus();
|
||||
$reviewers = mpull($reviewers, null, 'getReviewerPHID');
|
||||
|
||||
if ($is_blocking) {
|
||||
$new_status = DifferentialReviewerStatus::STATUS_BLOCKING;
|
||||
} else {
|
||||
$new_status = DifferentialReviewerStatus::STATUS_ADDED;
|
||||
}
|
||||
|
||||
$new_strength = DifferentialReviewerStatus::getStatusStrength(
|
||||
$new_status);
|
||||
|
||||
$current = array();
|
||||
foreach ($phids as $phid) {
|
||||
if (!isset($reviewers[$phid])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
// If we're applying a stronger status (usually, upgrading a reviewer
|
||||
// into a blocking reviewer), skip this check so we apply the change.
|
||||
$old_strength = DifferentialReviewerStatus::getStatusStrength(
|
||||
$reviewers[$phid]->getStatus());
|
||||
if ($old_strength <= $new_strength) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$current[] = $phid;
|
||||
}
|
||||
|
||||
$allowed_types = array(
|
||||
PhabricatorPeopleUserPHIDType::TYPECONST,
|
||||
PhabricatorProjectProjectPHIDType::TYPECONST,
|
||||
);
|
||||
|
||||
$targets = $this->loadStandardTargets($phids, $allowed_types, $current);
|
||||
if (!$targets) {
|
||||
return;
|
||||
}
|
||||
|
||||
$phids = array_fuse(array_keys($targets));
|
||||
|
||||
$value = array();
|
||||
foreach ($phids as $phid) {
|
||||
$value[$phid] = array(
|
||||
'data' => array(
|
||||
'status' => $new_status,
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
$edgetype_reviewer = DifferentialRevisionHasReviewerEdgeType::EDGECONST;
|
||||
|
||||
$xaction = $adapter->newTransaction()
|
||||
->setTransactionType(PhabricatorTransactions::TYPE_EDGE)
|
||||
->setMetadataValue('edge:type', $edgetype_reviewer)
|
||||
->setNewValue(
|
||||
array(
|
||||
'+' => $value,
|
||||
));
|
||||
|
||||
$adapter->queueTransaction($xaction);
|
||||
|
||||
if ($is_blocking) {
|
||||
$this->logEffect(self::DO_ADD_BLOCKING_REVIEWERS, $phids);
|
||||
} else {
|
||||
$this->logEffect(self::DO_ADD_REVIEWERS, $phids);
|
||||
}
|
||||
}
|
||||
|
||||
protected function getActionEffectMap() {
|
||||
return array(
|
||||
self::DO_AUTHORS => array(
|
||||
'icon' => 'fa-user',
|
||||
'color' => 'grey',
|
||||
'name' => pht('Revision Author'),
|
||||
),
|
||||
self::DO_ADD_REVIEWERS => array(
|
||||
'icon' => 'fa-user',
|
||||
'color' => 'green',
|
||||
'name' => pht('Added Reviewers'),
|
||||
),
|
||||
self::DO_ADD_BLOCKING_REVIEWERS => array(
|
||||
'icon' => 'fa-user',
|
||||
'color' => 'green',
|
||||
'name' => pht('Added Blocking Reviewers'),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
protected function renderActionEffectDescription($type, $data) {
|
||||
switch ($type) {
|
||||
case self::DO_AUTHORS:
|
||||
return pht(
|
||||
'Declined to add revision author as reviewer: %s.',
|
||||
$this->renderHandleList($data));
|
||||
case self::DO_ADD_REVIEWERS:
|
||||
return pht(
|
||||
'Added %s reviewer(s): %s.',
|
||||
new PhutilNumber(count($data)),
|
||||
$this->renderHandleList($data));
|
||||
case self::DO_ADD_BLOCKING_REVIEWERS:
|
||||
return pht(
|
||||
'Added %s blocking reviewer(s): %s.',
|
||||
new PhutilNumber(count($data)),
|
||||
$this->renderHandleList($data));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -63,44 +63,4 @@ final class HeraldDifferentialDiffAdapter extends HeraldDifferentialAdapter {
|
|||
return pht('New Diff');
|
||||
}
|
||||
|
||||
public function getActionNameMap($rule_type) {
|
||||
return array(
|
||||
self::ACTION_BLOCK => pht('Block diff with message'),
|
||||
) + parent::getActionNameMap($rule_type);
|
||||
}
|
||||
|
||||
public function getActions($rule_type) {
|
||||
switch ($rule_type) {
|
||||
case HeraldRuleTypeConfig::RULE_TYPE_GLOBAL:
|
||||
return array_merge(
|
||||
array(
|
||||
self::ACTION_BLOCK,
|
||||
self::ACTION_NOTHING,
|
||||
),
|
||||
parent::getActions($rule_type));
|
||||
}
|
||||
}
|
||||
|
||||
public function applyHeraldEffects(array $effects) {
|
||||
assert_instances_of($effects, 'HeraldEffect');
|
||||
|
||||
$result = array();
|
||||
foreach ($effects as $effect) {
|
||||
$action = $effect->getAction();
|
||||
switch ($action) {
|
||||
case self::ACTION_BLOCK:
|
||||
$result[] = new HeraldApplyTranscript(
|
||||
$effect,
|
||||
true,
|
||||
pht('Blocked diff.'));
|
||||
break;
|
||||
default:
|
||||
$result[] = $this->applyStandardEffect($effect);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1,20 +1,17 @@
|
|||
<?php
|
||||
|
||||
final class HeraldDifferentialRevisionAdapter
|
||||
extends HeraldDifferentialAdapter {
|
||||
extends HeraldDifferentialAdapter
|
||||
implements HarbormasterBuildableAdapterInterface {
|
||||
|
||||
protected $revision;
|
||||
|
||||
protected $explicitReviewers;
|
||||
protected $addReviewerPHIDs = array();
|
||||
protected $blockingReviewerPHIDs = array();
|
||||
protected $buildPlans = array();
|
||||
protected $requiredSignatureDocumentPHIDs = array();
|
||||
|
||||
protected $affectedPackages;
|
||||
protected $changesets;
|
||||
private $haveHunks;
|
||||
|
||||
private $buildPlanPHIDs = array();
|
||||
|
||||
public function getAdapterApplicationClass() {
|
||||
return 'PhabricatorDifferentialApplication';
|
||||
}
|
||||
|
@ -83,27 +80,6 @@ final class HeraldDifferentialRevisionAdapter
|
|||
return $object;
|
||||
}
|
||||
|
||||
public function setExplicitReviewers($explicit_reviewers) {
|
||||
$this->explicitReviewers = $explicit_reviewers;
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getReviewersAddedByHerald() {
|
||||
return $this->addReviewerPHIDs;
|
||||
}
|
||||
|
||||
public function getBlockingReviewersAddedByHerald() {
|
||||
return $this->blockingReviewerPHIDs;
|
||||
}
|
||||
|
||||
public function getRequiredSignatureDocumentPHIDs() {
|
||||
return $this->requiredSignatureDocumentPHIDs;
|
||||
}
|
||||
|
||||
public function getBuildPlans() {
|
||||
return $this->buildPlans;
|
||||
}
|
||||
|
||||
public function getHeraldName() {
|
||||
return $this->revision->getTitle();
|
||||
}
|
||||
|
@ -147,98 +123,28 @@ final class HeraldDifferentialRevisionAdapter
|
|||
}
|
||||
|
||||
public function loadReviewers() {
|
||||
// TODO: This can probably go away as I believe it's just a performance
|
||||
// optimization, just retaining it while modularizing fields to limit the
|
||||
// scope of that change.
|
||||
if (isset($this->explicitReviewers)) {
|
||||
return array_keys($this->explicitReviewers);
|
||||
} else {
|
||||
return $this->revision->getReviewers();
|
||||
}
|
||||
$reviewers = $this->getObject()->getReviewerStatus();
|
||||
return mpull($reviewers, 'getReviewerPHID');
|
||||
}
|
||||
|
||||
public function getActions($rule_type) {
|
||||
switch ($rule_type) {
|
||||
case HeraldRuleTypeConfig::RULE_TYPE_GLOBAL:
|
||||
return array_merge(
|
||||
array(
|
||||
self::ACTION_ADD_CC,
|
||||
self::ACTION_REMOVE_CC,
|
||||
self::ACTION_EMAIL,
|
||||
self::ACTION_ADD_REVIEWERS,
|
||||
self::ACTION_ADD_BLOCKING_REVIEWERS,
|
||||
self::ACTION_APPLY_BUILD_PLANS,
|
||||
self::ACTION_REQUIRE_SIGNATURE,
|
||||
self::ACTION_NOTHING,
|
||||
),
|
||||
parent::getActions($rule_type));
|
||||
case HeraldRuleTypeConfig::RULE_TYPE_PERSONAL:
|
||||
return array_merge(
|
||||
array(
|
||||
self::ACTION_ADD_CC,
|
||||
self::ACTION_REMOVE_CC,
|
||||
self::ACTION_EMAIL,
|
||||
self::ACTION_FLAG,
|
||||
self::ACTION_ADD_REVIEWERS,
|
||||
self::ACTION_ADD_BLOCKING_REVIEWERS,
|
||||
self::ACTION_NOTHING,
|
||||
),
|
||||
parent::getActions($rule_type));
|
||||
}
|
||||
|
||||
/* -( HarbormasterBuildableAdapterInterface )------------------------------ */
|
||||
|
||||
|
||||
public function getHarbormasterBuildablePHID() {
|
||||
return $this->getDiff()->getPHID();
|
||||
}
|
||||
|
||||
public function applyHeraldEffects(array $effects) {
|
||||
assert_instances_of($effects, 'HeraldEffect');
|
||||
public function getHarbormasterContainerPHID() {
|
||||
return $this->getObject()->getPHID();
|
||||
}
|
||||
|
||||
$result = array();
|
||||
public function getQueuedHarbormasterBuildPlanPHIDs() {
|
||||
return $this->buildPlanPHIDs;
|
||||
}
|
||||
|
||||
foreach ($effects as $effect) {
|
||||
$action = $effect->getAction();
|
||||
switch ($action) {
|
||||
case self::ACTION_ADD_REVIEWERS:
|
||||
foreach ($effect->getTarget() as $phid) {
|
||||
$this->addReviewerPHIDs[$phid] = true;
|
||||
}
|
||||
$result[] = new HeraldApplyTranscript(
|
||||
$effect,
|
||||
true,
|
||||
pht('Added reviewers.'));
|
||||
break;
|
||||
case self::ACTION_ADD_BLOCKING_REVIEWERS:
|
||||
// This adds reviewers normally, it just also marks them blocking.
|
||||
foreach ($effect->getTarget() as $phid) {
|
||||
$this->addReviewerPHIDs[$phid] = true;
|
||||
$this->blockingReviewerPHIDs[$phid] = true;
|
||||
}
|
||||
$result[] = new HeraldApplyTranscript(
|
||||
$effect,
|
||||
true,
|
||||
pht('Added blocking reviewers.'));
|
||||
break;
|
||||
case self::ACTION_APPLY_BUILD_PLANS:
|
||||
foreach ($effect->getTarget() as $phid) {
|
||||
$this->buildPlans[] = $phid;
|
||||
}
|
||||
$result[] = new HeraldApplyTranscript(
|
||||
$effect,
|
||||
true,
|
||||
pht('Applied build plans.'));
|
||||
break;
|
||||
case self::ACTION_REQUIRE_SIGNATURE:
|
||||
foreach ($effect->getTarget() as $phid) {
|
||||
$this->requiredSignatureDocumentPHIDs[] = $phid;
|
||||
}
|
||||
$result[] = new HeraldApplyTranscript(
|
||||
$effect,
|
||||
true,
|
||||
pht('Required signatures.'));
|
||||
break;
|
||||
default:
|
||||
$result[] = $this->applyStandardEffect($effect);
|
||||
break;
|
||||
}
|
||||
}
|
||||
return $result;
|
||||
public function queueHarbormasterBuildPlanPHID($phid) {
|
||||
$this->buildPlanPHIDs[] = $phid;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -325,9 +325,11 @@ final class DiffusionCommitHookEngine extends Phobject {
|
|||
$this->emailPHIDs[$email_phid] = $email_phid;
|
||||
}
|
||||
|
||||
$block_action = DiffusionBlockHeraldAction::ACTIONCONST;
|
||||
|
||||
if ($blocking_effect === null) {
|
||||
foreach ($effects as $effect) {
|
||||
if ($effect->getAction() == HeraldAdapter::ACTION_BLOCK) {
|
||||
if ($effect->getAction() == $block_action) {
|
||||
$blocking_effect = $effect;
|
||||
$blocked_update = $update;
|
||||
break;
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue