Homec4science

Allow PolicyRules to serve as "Object Policies"

Authored by epriestley <git@epriestley.com> on Jun 14 2015, 00:44.

Description

Allow PolicyRules to serve as "Object Policies"

Summary:
Ref T5681. Ref T8488. This allows policy rules to provide "Object Policies", which are similar to the global/basic policies:

  • They show up directly in the dropdown (you don't have to create a custom rule).
  • They don't need to create or load anything in the database.

To implement one, you just add a couple methods on an existing PolicyRule that let Phabricator know it can work as an object policy rule.

{F494764}

These rules only show up where they make sense. For example, the "Task Author" rule is only available in Maniphest, and in "Default View Policy" / "Default Edit Policy" of the Application config.

This should make T8488 easier by letting us set the default policies to "Members of Thread", without having to create a dedicated custom policy for every thread.

Test Plan:

  • Set tasks to "Task Author" policy.
  • Tried to view them as other users.
  • Viewed transaction change strings.
  • Viewed policy errors.
  • Set them as default policies.
  • Verified they don't leak into other policy controls.

Reviewers: btrahan

Reviewed By: btrahan

Subscribers: epriestley

Maniphest Tasks: T5681, T8488

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

Details

Committed
epriestley <git@epriestley.com>Jun 14 2015, 00:44
Pushed
aubortJan 31 2017, 17:16
Parents
rPH7f98a8575d0a: Allow different policy rules for different types of objects
Branches
Unknown
Tags
Unknown

Event Timeline

epriestley <git@epriestley.com> committed rPH466755476aed: Allow PolicyRules to serve as "Object Policies" (authored by epriestley <git@epriestley.com>).Jun 14 2015, 00:44