@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

Have Badges use getMostOpenPolicy for View

Summary: Fixes T8938. Sets by default for new badges, getMostOpenPolicy. Removes ability to edit viewPolicy.

Test Plan: Create a new badge, see its public, assign it, log out, still able to view it.

Reviewers: btrahan, epriestley

Reviewed By: btrahan

Subscribers: epriestley, Korvin

Maniphest Tasks: T8938

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

+2 -39
-2
src/__phutil_library_map__.php
··· 1625 1625 'PhabricatorBadgesCreateCapability' => 'applications/badges/capability/PhabricatorBadgesCreateCapability.php', 1626 1626 'PhabricatorBadgesDAO' => 'applications/badges/storage/PhabricatorBadgesDAO.php', 1627 1627 'PhabricatorBadgesDefaultEditCapability' => 'applications/badges/capability/PhabricatorBadgesDefaultEditCapability.php', 1628 - 'PhabricatorBadgesDefaultViewCapability' => 'applications/badges/capability/PhabricatorBadgesDefaultViewCapability.php', 1629 1628 'PhabricatorBadgesEditController' => 'applications/badges/controller/PhabricatorBadgesEditController.php', 1630 1629 'PhabricatorBadgesEditIconController' => 'applications/badges/controller/PhabricatorBadgesEditIconController.php', 1631 1630 'PhabricatorBadgesEditRecipientsController' => 'applications/badges/controller/PhabricatorBadgesEditRecipientsController.php', ··· 5380 5379 'PhabricatorBadgesCreateCapability' => 'PhabricatorPolicyCapability', 5381 5380 'PhabricatorBadgesDAO' => 'PhabricatorLiskDAO', 5382 5381 'PhabricatorBadgesDefaultEditCapability' => 'PhabricatorPolicyCapability', 5383 - 'PhabricatorBadgesDefaultViewCapability' => 'PhabricatorPolicyCapability', 5384 5382 'PhabricatorBadgesEditController' => 'PhabricatorBadgesController', 5385 5383 'PhabricatorBadgesEditIconController' => 'PhabricatorBadgesController', 5386 5384 'PhabricatorBadgesEditRecipientsController' => 'PhabricatorBadgesController',
-4
src/applications/badges/application/PhabricatorBadgesApplication.php
··· 71 71 'caption' => pht('Default edit policy for badges.'), 72 72 'template' => PhabricatorBadgesPHIDType::TYPECONST, 73 73 ), 74 - PhabricatorBadgesDefaultViewCapability::CAPABILITY => array( 75 - 'caption' => pht('Default view policy for badges.'), 76 - 'template' => PhabricatorBadgesPHIDType::TYPECONST, 77 - ), 78 74 ); 79 75 } 80 76
-16
src/applications/badges/capability/PhabricatorBadgesDefaultViewCapability.php
··· 1 - <?php 2 - 3 - final class PhabricatorBadgesDefaultViewCapability extends 4 - PhabricatorPolicyCapability { 5 - 6 - const CAPABILITY = 'badges.default.view'; 7 - 8 - public function getCapabilityName() { 9 - return pht('Default View Policy'); 10 - } 11 - 12 - public function shouldAllowPublicPolicySetting() { 13 - return true; 14 - } 15 - 16 - }
-13
src/applications/badges/controller/PhabricatorBadgesEditController.php
··· 49 49 $v_stat = $badge->getStatus(); 50 50 51 51 $v_edit = $badge->getEditPolicy(); 52 - $v_view = $badge->getViewPolicy(); 53 52 54 53 $validation_exception = null; 55 54 if ($request->isFormPost()) { ··· 70 69 $type_qual = PhabricatorBadgesTransaction::TYPE_QUALITY; 71 70 $type_stat = PhabricatorBadgesTransaction::TYPE_STATUS; 72 71 73 - $type_view = PhabricatorTransactions::TYPE_VIEW_POLICY; 74 72 $type_edit = PhabricatorTransactions::TYPE_EDIT_POLICY; 75 73 76 74 $xactions = array(); ··· 98 96 $xactions[] = id(new PhabricatorBadgesTransaction()) 99 97 ->setTransactionType($type_stat) 100 98 ->setNewValue($v_stat); 101 - 102 - $xactions[] = id(new PhabricatorBadgesTransaction()) 103 - ->setTransactionType($type_view) 104 - ->setNewValue($v_view); 105 99 106 100 $xactions[] = id(new PhabricatorBadgesTransaction()) 107 101 ->setTransactionType($type_edit) ··· 175 169 ->setName('description') 176 170 ->setLabel(pht('Description')) 177 171 ->setValue($v_desc)) 178 - ->appendChild( 179 - id(new AphrontFormPolicyControl()) 180 - ->setName('viewPolicy') 181 - ->setPolicyObject($badge) 182 - ->setCapability(PhabricatorPolicyCapability::CAN_VIEW) 183 - ->setValue($v_view) 184 - ->setPolicies($policies)) 185 172 ->appendChild( 186 173 id(new AphrontFormPolicyControl()) 187 174 ->setName('editPolicy')
-1
src/applications/badges/editor/PhabricatorBadgesEditor.php
··· 23 23 24 24 $types[] = PhabricatorTransactions::TYPE_COMMENT; 25 25 $types[] = PhabricatorTransactions::TYPE_EDGE; 26 - $types[] = PhabricatorTransactions::TYPE_VIEW_POLICY; 27 26 $types[] = PhabricatorTransactions::TYPE_EDIT_POLICY; 28 27 29 28 return $types;
+2 -3
src/applications/badges/storage/PhabricatorBadgesBadge.php
··· 63 63 ->withClasses(array('PhabricatorBadgesApplication')) 64 64 ->executeOne(); 65 65 66 - $view_policy = 67 - $app->getPolicy(PhabricatorBadgesDefaultViewCapability::CAPABILITY); 66 + $view_policy = PhabricatorPolicies::getMostOpenPolicy(); 68 67 69 68 $edit_policy = 70 69 $app->getPolicy(PhabricatorBadgesDefaultEditCapability::CAPABILITY); ··· 129 128 public function getPolicy($capability) { 130 129 switch ($capability) { 131 130 case PhabricatorPolicyCapability::CAN_VIEW: 132 - return $this->getViewPolicy(); 131 + return PhabricatorPolicies::getMostOpenPolicy(); 133 132 case PhabricatorPolicyCapability::CAN_EDIT: 134 133 return $this->getEditPolicy(); 135 134 }