HomePhabricator

Allow different policy rules for different types of objects

Tags
None
Referenced Files
None
Subscribers
None
Tokens
"Orange Medal" token, awarded by 20after4.

Description

Allow different policy rules for different types of objects

Summary:
Ref T5681. Policy rules can now select objects they can apply to, so a rule like "task author" only shows up where it makes sense (when defining task policies).

This will let us define rules like "members of thread" in Conpherence, "subscribers", etc., to make custom policies more flexible.

Notes:

  • Per D13251, we need to do a little work to get the right options for policies like "Maniphest > Default View Policy". This should allow "task" policies.
  • This implements a "task author" policy as a simple example.
  • The willApplyRule() signature now accepts $objects to support bulk-loading things like subscribers.

Test Plan:

  • Defined a task to be "visible to: task author", verified author could see it and other users could not.
  • var_dump()'d willApplyRule() inputs, verified they were correct (exactly the objects which use the rule).
  • Set default view policy to a task-specific policy.
  • Verified that other policies like "Can Use Bulk Editor" don't have these options.

Reviewers: btrahan

Reviewed By: btrahan

Subscribers: epriestley

Maniphest Tasks: T5681

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

Details