@recaptime-dev's working patches + fork for Phorge, a community fork of Phabricator. (Upstream dev and stable branches are at upstream/main and upstream/stable respectively.) hq.recaptime.dev/wiki/Phorge
phorge phabricator
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Add global "push" policy to Repositories

Summary: No editing or view yet, just adds the schema and a policy default. Part of D7391.

Test Plan: `bin/storage upgrade`

Reviewers: hach-que, btrahan

Reviewed By: hach-que

CC: aran

Maniphest Tasks: T2230

Differential Revision: https://secure.phabricator.com/D7415

+56 -3
+5
resources/sql/patches/20131025.repopush.sql
··· 1 + ALTER TABLE {$NAMESPACE}_repository.repository 2 + ADD COLUMN pushPolicy VARCHAR(64) NOT NULL COLLATE utf8_bin; 3 + 4 + UPDATE {$NAMESPACE}_repository.repository 5 + SET pushPolicy = 'users' WHERE pushPolicy = '';
+4 -2
src/__phutil_library_map__.php
··· 451 451 'DiffusionBrowseTableView' => 'applications/diffusion/view/DiffusionBrowseTableView.php', 452 452 'DiffusionCapabilityCreateRepositories' => 'applications/diffusion/capability/DiffusionCapabilityCreateRepositories.php', 453 453 'DiffusionCapabilityDefaultEdit' => 'applications/diffusion/capability/DiffusionCapabilityDefaultEdit.php', 454 + 'DiffusionCapabilityDefaultPush' => 'applications/diffusion/capability/DiffusionCapabilityDefaultPush.php', 454 455 'DiffusionCapabilityDefaultView' => 'applications/diffusion/capability/DiffusionCapabilityDefaultView.php', 456 + 'DiffusionCapabilityPush' => 'applications/diffusion/capability/DiffusionCapabilityPush.php', 455 457 'DiffusionChangeController' => 'applications/diffusion/controller/DiffusionChangeController.php', 456 458 'DiffusionCommentListView' => 'applications/diffusion/view/DiffusionCommentListView.php', 457 459 'DiffusionCommentView' => 'applications/diffusion/view/DiffusionCommentView.php', ··· 1631 1633 'PhabricatorRepositoryCommitSearchIndexer' => 'applications/repository/search/PhabricatorRepositoryCommitSearchIndexer.php', 1632 1634 'PhabricatorRepositoryConfigOptions' => 'applications/repository/PhabricatorRepositoryConfigOptions.php', 1633 1635 'PhabricatorRepositoryController' => 'applications/repository/controller/PhabricatorRepositoryController.php', 1634 - 'PhabricatorRepositoryCreateController' => 'applications/repository/controller/PhabricatorRepositoryCreateController.php', 1635 1636 'PhabricatorRepositoryDAO' => 'applications/repository/storage/PhabricatorRepositoryDAO.php', 1636 1637 'PhabricatorRepositoryDiscoveryEngine' => 'applications/repository/engine/PhabricatorRepositoryDiscoveryEngine.php', 1637 1638 'PhabricatorRepositoryEditController' => 'applications/repository/controller/PhabricatorRepositoryEditController.php', ··· 2639 2640 'DiffusionBrowseTableView' => 'DiffusionView', 2640 2641 'DiffusionCapabilityCreateRepositories' => 'PhabricatorPolicyCapability', 2641 2642 'DiffusionCapabilityDefaultEdit' => 'PhabricatorPolicyCapability', 2643 + 'DiffusionCapabilityDefaultPush' => 'PhabricatorPolicyCapability', 2642 2644 'DiffusionCapabilityDefaultView' => 'PhabricatorPolicyCapability', 2645 + 'DiffusionCapabilityPush' => 'PhabricatorPolicyCapability', 2643 2646 'DiffusionChangeController' => 'DiffusionController', 2644 2647 'DiffusionCommentListView' => 'AphrontView', 2645 2648 'DiffusionCommentView' => 'AphrontView', ··· 3961 3964 'PhabricatorRepositoryCommitSearchIndexer' => 'PhabricatorSearchDocumentIndexer', 3962 3965 'PhabricatorRepositoryConfigOptions' => 'PhabricatorApplicationConfigOptions', 3963 3966 'PhabricatorRepositoryController' => 'PhabricatorController', 3964 - 'PhabricatorRepositoryCreateController' => 'PhabricatorRepositoryController', 3965 3967 'PhabricatorRepositoryDAO' => 'PhabricatorLiskDAO', 3966 3968 'PhabricatorRepositoryDiscoveryEngine' => 'PhabricatorRepositoryEngine', 3967 3969 'PhabricatorRepositoryEditController' => 'PhabricatorRepositoryController',
+16
src/applications/diffusion/capability/DiffusionCapabilityDefaultPush.php
··· 1 + <?php 2 + 3 + final class DiffusionCapabilityDefaultPush 4 + extends PhabricatorPolicyCapability { 5 + 6 + const CAPABILITY = 'diffusion.default.push'; 7 + 8 + public function getCapabilityKey() { 9 + return self::CAPABILITY; 10 + } 11 + 12 + public function getCapabilityName() { 13 + return pht('Default Push Policy'); 14 + } 15 + 16 + }
+20
src/applications/diffusion/capability/DiffusionCapabilityPush.php
··· 1 + <?php 2 + 3 + final class DiffusionCapabilityPush 4 + extends PhabricatorPolicyCapability { 5 + 6 + const CAPABILITY = 'diffusion.push'; 7 + 8 + public function getCapabilityKey() { 9 + return self::CAPABILITY; 10 + } 11 + 12 + public function getCapabilityName() { 13 + return pht('Can Push'); 14 + } 15 + 16 + public function describeCapabilityRejection() { 17 + return pht('You do not have permission to push to this repository.'); 18 + } 19 + 20 + }
+7 -1
src/applications/repository/storage/PhabricatorRepository.php
··· 31 31 protected $uuid; 32 32 protected $viewPolicy; 33 33 protected $editPolicy; 34 + protected $pushPolicy; 34 35 35 36 protected $versionControlSystem; 36 37 protected $details = array(); ··· 48 49 49 50 $view_policy = $app->getPolicy(DiffusionCapabilityDefaultView::CAPABILITY); 50 51 $edit_policy = $app->getPolicy(DiffusionCapabilityDefaultEdit::CAPABILITY); 52 + $push_policy = $app->getPolicy(DiffusionCapabilityDefaultPush::CAPABILITY); 51 53 52 54 return id(new PhabricatorRepository()) 53 55 ->setViewPolicy($view_policy) 54 - ->setEditPolicy($edit_policy); 56 + ->setEditPolicy($edit_policy) 57 + ->setPushPolicy($push_policy); 55 58 } 56 59 57 60 public function getConfiguration() { ··· 713 716 return array( 714 717 PhabricatorPolicyCapability::CAN_VIEW, 715 718 PhabricatorPolicyCapability::CAN_EDIT, 719 + DiffusionCapabilityPush::CAPABILITY, 716 720 ); 717 721 } 718 722 ··· 722 726 return $this->getViewPolicy(); 723 727 case PhabricatorPolicyCapability::CAN_EDIT: 724 728 return $this->getEditPolicy(); 729 + case DiffusionCapabilityPush::CAPABILITY: 730 + return $this->getPushPolicy(); 725 731 } 726 732 } 727 733
+4
src/infrastructure/storage/patch/PhabricatorBuiltinPatchList.php
··· 1704 1704 'type' => 'sql', 1705 1705 'name' => $this->getPatchPath('20131020.harbormaster.sql'), 1706 1706 ), 1707 + '20131025.repopush.sql' => array( 1708 + 'type' => 'sql', 1709 + 'name' => $this->getPatchPath('20131025.repopush.sql'), 1710 + ), 1707 1711 ); 1708 1712 } 1709 1713 }