1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-09-20 01:08:50 +02:00

Simplify the implementation of PhabricatorPolicyCapability subclasses

Summary: Instead of implementing the `getCapabilityKey` method in all subclasses of `PhabricatorPolicyCapability`, provide a `final` implementation in the base class which uses reflection. See D9837 and D9985 for similar implementations.

Test Plan: N/A

Reviewers: epriestley, #blessed_reviewers

Reviewed By: epriestley, #blessed_reviewers

Subscribers: epriestley, Korvin, hach-que

Differential Revision: https://secure.phabricator.com/D10039
This commit is contained in:
Joshua Spence 2014-07-25 08:25:42 +10:00
parent c34de83619
commit b4d7a9de39
39 changed files with 24 additions and 150 deletions

View file

@ -5,10 +5,6 @@ final class PhabricatorCountdownDefaultViewCapability
const CAPABILITY = 'countdown.default.view'; const CAPABILITY = 'countdown.default.view';
public function getCapabilityKey() {
return self::CAPABILITY;
}
public function getCapabilityName() { public function getCapabilityName() {
return pht('Default View Policy'); return pht('Default View Policy');
} }

View file

@ -5,10 +5,6 @@ final class DifferentialDefaultViewCapability
const CAPABILITY = 'differential.default.view'; const CAPABILITY = 'differential.default.view';
public function getCapabilityKey() {
return self::CAPABILITY;
}
public function getCapabilityName() { public function getCapabilityName() {
return pht('Default View Policy'); return pht('Default View Policy');
} }

View file

@ -5,10 +5,6 @@ final class DiffusionCreateRepositoriesCapability
const CAPABILITY = 'diffusion.create'; const CAPABILITY = 'diffusion.create';
public function getCapabilityKey() {
return self::CAPABILITY;
}
public function getCapabilityName() { public function getCapabilityName() {
return pht('Can Create Repositories'); return pht('Can Create Repositories');
} }

View file

@ -4,10 +4,6 @@ final class DiffusionDefaultEditCapability extends PhabricatorPolicyCapability {
const CAPABILITY = 'diffusion.default.edit'; const CAPABILITY = 'diffusion.default.edit';
public function getCapabilityKey() {
return self::CAPABILITY;
}
public function getCapabilityName() { public function getCapabilityName() {
return pht('Default Edit Policy'); return pht('Default Edit Policy');
} }

View file

@ -4,10 +4,6 @@ final class DiffusionDefaultPushCapability extends PhabricatorPolicyCapability {
const CAPABILITY = 'diffusion.default.push'; const CAPABILITY = 'diffusion.default.push';
public function getCapabilityKey() {
return self::CAPABILITY;
}
public function getCapabilityName() { public function getCapabilityName() {
return pht('Default Push Policy'); return pht('Default Push Policy');
} }

View file

@ -4,10 +4,6 @@ final class DiffusionDefaultViewCapability extends PhabricatorPolicyCapability {
const CAPABILITY = 'diffusion.default.view'; const CAPABILITY = 'diffusion.default.view';
public function getCapabilityKey() {
return self::CAPABILITY;
}
public function getCapabilityName() { public function getCapabilityName() {
return pht('Default View Policy'); return pht('Default View Policy');
} }

View file

@ -4,10 +4,6 @@ final class DiffusionPushCapability extends PhabricatorPolicyCapability {
const CAPABILITY = 'diffusion.push'; const CAPABILITY = 'diffusion.push';
public function getCapabilityKey() {
return self::CAPABILITY;
}
public function getCapabilityName() { public function getCapabilityName() {
return pht('Can Push'); return pht('Can Push');
} }

View file

@ -5,10 +5,6 @@ final class DrydockCreateBlueprintsCapability
const CAPABILITY = 'drydock.blueprint.create'; const CAPABILITY = 'drydock.blueprint.create';
public function getCapabilityKey() {
return self::CAPABILITY;
}
public function getCapabilityName() { public function getCapabilityName() {
return pht('Can Create Blueprints'); return pht('Can Create Blueprints');
} }

View file

@ -4,10 +4,6 @@ final class DrydockDefaultEditCapability extends PhabricatorPolicyCapability {
const CAPABILITY = 'drydock.default.edit'; const CAPABILITY = 'drydock.default.edit';
public function getCapabilityKey() {
return self::CAPABILITY;
}
public function getCapabilityName() { public function getCapabilityName() {
return pht('Default Blueprint Edit Policy'); return pht('Default Blueprint Edit Policy');
} }

View file

@ -4,10 +4,6 @@ final class DrydockDefaultViewCapability extends PhabricatorPolicyCapability {
const CAPABILITY = 'drydock.default.view'; const CAPABILITY = 'drydock.default.view';
public function getCapabilityKey() {
return self::CAPABILITY;
}
public function getCapabilityName() { public function getCapabilityName() {
return pht('Default Blueprint View Policy'); return pht('Default Blueprint View Policy');
} }

View file

@ -5,10 +5,6 @@ final class HarbormasterManagePlansCapability
const CAPABILITY = 'harbormaster.plans'; const CAPABILITY = 'harbormaster.plans';
public function getCapabilityKey() {
return self::CAPABILITY;
}
public function getCapabilityName() { public function getCapabilityName() {
return pht('Can Manage Build Plans'); return pht('Can Manage Build Plans');
} }

View file

@ -5,10 +5,6 @@ final class HeraldManageGlobalRulesCapability
const CAPABILITY = 'herald.global'; const CAPABILITY = 'herald.global';
public function getCapabilityKey() {
return self::CAPABILITY;
}
public function getCapabilityName() { public function getCapabilityName() {
return pht('Can Manage Global Rules'); return pht('Can Manage Global Rules');
} }

View file

@ -5,10 +5,6 @@ final class LegalpadCreateDocumentsCapability
const CAPABILITY = 'legalpad.create'; const CAPABILITY = 'legalpad.create';
public function getCapabilityKey() {
return self::CAPABILITY;
}
public function getCapabilityName() { public function getCapabilityName() {
return pht('Can Create Documents'); return pht('Can Create Documents');
} }

View file

@ -4,10 +4,6 @@ final class LegalpadDefaultEditCapability extends PhabricatorPolicyCapability {
const CAPABILITY = 'legalpad.default.edit'; const CAPABILITY = 'legalpad.default.edit';
public function getCapabilityKey() {
return self::CAPABILITY;
}
public function getCapabilityName() { public function getCapabilityName() {
return pht('Default Edit Policy'); return pht('Default Edit Policy');
} }

View file

@ -4,10 +4,6 @@ final class LegalpadDefaultViewCapability extends PhabricatorPolicyCapability {
const CAPABILITY = 'legalpad.default.view'; const CAPABILITY = 'legalpad.default.view';
public function getCapabilityKey() {
return self::CAPABILITY;
}
public function getCapabilityName() { public function getCapabilityName() {
return pht('Default View Policy'); return pht('Default View Policy');
} }

View file

@ -5,10 +5,6 @@ final class PhabricatorMacroManageCapability
const CAPABILITY = 'macro.manage'; const CAPABILITY = 'macro.manage';
public function getCapabilityKey() {
return self::CAPABILITY;
}
public function getCapabilityName() { public function getCapabilityName() {
return pht('Can Manage Macros'); return pht('Can Manage Macros');
} }

View file

@ -4,10 +4,6 @@ final class ManiphestBulkEditCapability extends PhabricatorPolicyCapability {
const CAPABILITY = 'maniphest.edit.bulk'; const CAPABILITY = 'maniphest.edit.bulk';
public function getCapabilityKey() {
return self::CAPABILITY;
}
public function getCapabilityName() { public function getCapabilityName() {
return pht('Can Bulk Edit Tasks'); return pht('Can Bulk Edit Tasks');
} }

View file

@ -4,10 +4,6 @@ final class ManiphestDefaultEditCapability extends PhabricatorPolicyCapability {
const CAPABILITY = 'maniphest.default.edit'; const CAPABILITY = 'maniphest.default.edit';
public function getCapabilityKey() {
return self::CAPABILITY;
}
public function getCapabilityName() { public function getCapabilityName() {
return pht('Default Edit Policy'); return pht('Default Edit Policy');
} }

View file

@ -4,10 +4,6 @@ final class ManiphestDefaultViewCapability extends PhabricatorPolicyCapability {
const CAPABILITY = 'maniphest.default.view'; const CAPABILITY = 'maniphest.default.view';
public function getCapabilityKey() {
return self::CAPABILITY;
}
public function getCapabilityName() { public function getCapabilityName() {
return pht('Default View Policy'); return pht('Default View Policy');
} }

View file

@ -4,10 +4,6 @@ final class ManiphestEditAssignCapability extends PhabricatorPolicyCapability {
const CAPABILITY = 'maniphest.edit.assign'; const CAPABILITY = 'maniphest.edit.assign';
public function getCapabilityKey() {
return self::CAPABILITY;
}
public function getCapabilityName() { public function getCapabilityName() {
return pht('Can Assign Tasks'); return pht('Can Assign Tasks');
} }

View file

@ -5,10 +5,6 @@ final class ManiphestEditPoliciesCapability
const CAPABILITY = 'maniphest.edit.policies'; const CAPABILITY = 'maniphest.edit.policies';
public function getCapabilityKey() {
return self::CAPABILITY;
}
public function getCapabilityName() { public function getCapabilityName() {
return pht('Can Edit Task Policies'); return pht('Can Edit Task Policies');
} }

View file

@ -5,10 +5,6 @@ final class ManiphestEditPriorityCapability
const CAPABILITY = 'maniphest.edit.priority'; const CAPABILITY = 'maniphest.edit.priority';
public function getCapabilityKey() {
return self::CAPABILITY;
}
public function getCapabilityName() { public function getCapabilityName() {
return pht('Can Prioritize Tasks'); return pht('Can Prioritize Tasks');
} }

View file

@ -5,10 +5,6 @@ final class ManiphestEditProjectsCapability
const CAPABILITY = 'maniphest.edit.projects'; const CAPABILITY = 'maniphest.edit.projects';
public function getCapabilityKey() {
return self::CAPABILITY;
}
public function getCapabilityName() { public function getCapabilityName() {
return pht('Can Edit Task Projects'); return pht('Can Edit Task Projects');
} }

View file

@ -4,10 +4,6 @@ final class ManiphestEditStatusCapability extends PhabricatorPolicyCapability {
const CAPABILITY = 'maniphest.edit.status'; const CAPABILITY = 'maniphest.edit.status';
public function getCapabilityKey() {
return self::CAPABILITY;
}
public function getCapabilityName() { public function getCapabilityName() {
return pht('Can Edit Task Status'); return pht('Can Edit Task Status');
} }

View file

@ -5,10 +5,6 @@ final class NuanceSourceDefaultEditCapability
const CAPABILITY = 'nuance.source.default.edit'; const CAPABILITY = 'nuance.source.default.edit';
public function getCapabilityKey() {
return self::CAPABILITY;
}
public function getCapabilityName() { public function getCapabilityName() {
return pht('Default Source Edit Policy'); return pht('Default Source Edit Policy');
} }

View file

@ -5,10 +5,6 @@ final class NuanceSourceDefaultViewCapability
const CAPABILITY = 'nuance.source.default.view'; const CAPABILITY = 'nuance.source.default.view';
public function getCapabilityKey() {
return self::CAPABILITY;
}
public function getCapabilityName() { public function getCapabilityName() {
return pht('Default Source View Policy'); return pht('Default Source View Policy');
} }

View file

@ -4,10 +4,6 @@ final class NuanceSourceManageCapability extends PhabricatorPolicyCapability {
const CAPABILITY = 'nuance.source.manage'; const CAPABILITY = 'nuance.source.manage';
public function getCapabilityKey() {
return self::CAPABILITY;
}
public function getCapabilityName() { public function getCapabilityName() {
return pht('Can Manage Sources'); return pht('Can Manage Sources');
} }

View file

@ -5,10 +5,6 @@ final class PhabricatorOAuthServerCreateClientsCapability
const CAPABILITY = 'oauthserver.create'; const CAPABILITY = 'oauthserver.create';
public function getCapabilityKey() {
return self::CAPABILITY;
}
public function getCapabilityName() { public function getCapabilityName() {
return pht('Can Create OAuth Applications'); return pht('Can Create OAuth Applications');
} }

View file

@ -4,10 +4,6 @@ final class PasteDefaultViewCapability extends PhabricatorPolicyCapability {
const CAPABILITY = 'paste.default.view'; const CAPABILITY = 'paste.default.view';
public function getCapabilityKey() {
return self::CAPABILITY;
}
public function getCapabilityName() { public function getCapabilityName() {
return pht('Default View Policy'); return pht('Default View Policy');
} }

View file

@ -5,10 +5,6 @@ final class PeopleBrowseUserDirectoryCapability
const CAPABILITY = 'people.browse'; const CAPABILITY = 'people.browse';
public function getCapabilityKey() {
return self::CAPABILITY;
}
public function getCapabilityName() { public function getCapabilityName() {
return pht('Can Browse User Directory'); return pht('Can Browse User Directory');
} }

View file

@ -4,10 +4,6 @@ final class PholioDefaultEditCapability extends PhabricatorPolicyCapability {
const CAPABILITY = 'pholio.default.edit'; const CAPABILITY = 'pholio.default.edit';
public function getCapabilityKey() {
return self::CAPABILITY;
}
public function getCapabilityName() { public function getCapabilityName() {
return pht('Default Edit Policy'); return pht('Default Edit Policy');
} }

View file

@ -4,10 +4,6 @@ final class PholioDefaultViewCapability extends PhabricatorPolicyCapability {
const CAPABILITY = 'pholio.default.view'; const CAPABILITY = 'pholio.default.view';
public function getCapabilityKey() {
return self::CAPABILITY;
}
public function getCapabilityName() { public function getCapabilityName() {
return pht('Default View Policy'); return pht('Default View Policy');
} }

View file

@ -4,10 +4,6 @@ final class PhragmentCanCreateCapability extends PhabricatorPolicyCapability {
const CAPABILITY = 'phragment.create'; const CAPABILITY = 'phragment.create';
public function getCapabilityKey() {
return self::CAPABILITY;
}
public function getCapabilityName() { public function getCapabilityName() {
return pht('Can Create Fragments'); return pht('Can Create Fragments');
} }

View file

@ -3,9 +3,7 @@
final class PhabricatorPolicyCanEditCapability final class PhabricatorPolicyCanEditCapability
extends PhabricatorPolicyCapability { extends PhabricatorPolicyCapability {
public function getCapabilityKey() { const CAPABILITY = self::CAN_EDIT;
return self::CAN_EDIT;
}
public function getCapabilityName() { public function getCapabilityName() {
return pht('Can Edit'); return pht('Can Edit');

View file

@ -3,9 +3,7 @@
final class PhabricatorPolicyCanJoinCapability final class PhabricatorPolicyCanJoinCapability
extends PhabricatorPolicyCapability { extends PhabricatorPolicyCapability {
public function getCapabilityKey() { const CAPABILITY = self::CAN_JOIN;
return self::CAN_JOIN;
}
public function getCapabilityName() { public function getCapabilityName() {
return pht('Can Join'); return pht('Can Join');

View file

@ -3,9 +3,7 @@
final class PhabricatorPolicyCanViewCapability final class PhabricatorPolicyCanViewCapability
extends PhabricatorPolicyCapability { extends PhabricatorPolicyCapability {
public function getCapabilityKey() { const CAPABILITY = self::CAN_VIEW;
return self::CAN_VIEW;
}
public function getCapabilityName() { public function getCapabilityName() {
return pht('Can View'); return pht('Can View');

View file

@ -14,7 +14,27 @@ abstract class PhabricatorPolicyCapability extends Phobject {
* *
* @return string Globally unique capability key. * @return string Globally unique capability key.
*/ */
abstract public function getCapabilityKey(); final public function getCapabilityKey() {
$class = new ReflectionClass($this);
$const = $class->getConstant('CAPABILITY');
if ($const === false) {
throw new Exception(
pht(
'PolicyCapability class "%s" must define an CAPABILITY property.',
get_class($this)));
}
if (!is_string($const)) {
throw new Exception(
pht(
'PolicyCapability class "%s" has an invalid CAPABILITY '.
'property. Capability constants must be a string.',
get_class($this)));
}
return $const;
}
/** /**

View file

@ -5,10 +5,6 @@ final class ProjectCreateProjectsCapability
const CAPABILITY = 'project.create'; const CAPABILITY = 'project.create';
public function getCapabilityKey() {
return self::CAPABILITY;
}
public function getCapabilityName() { public function getCapabilityName() {
return pht('Can Create Projects'); return pht('Can Create Projects');
} }

View file

@ -5,10 +5,6 @@ final class PhabricatorSlowvoteDefaultViewCapability
const CAPABILITY = 'slowvote.default.view'; const CAPABILITY = 'slowvote.default.view';
public function getCapabilityKey() {
return self::CAPABILITY;
}
public function getCapabilityName() { public function getCapabilityName() {
return pht('Default View Policy'); return pht('Default View Policy');
} }