Page MenuHomePhabricator

Implement a separate "Can Leave Project" policy
Closed, ResolvedPublic

Description

I think that it would be useful to have a new policy for "Can Leave Project", at least until T3820: Implement top-level "Spaces" that provide policy isolation to groups of objects.

I believe there was some brief discussion about this in IRC.

Related Objects

StatusAssignedTask
Resolvedepriestley
Resolvedepriestley
ResolvedNone
Wontfixepriestley
OpenNone
DuplicateNone
Resolvedepriestley
OpenNone
Resolvedepriestley
Resolvedepriestley
OpenNone
OpenNone
OpenNone
Openepriestley
Resolvedepriestley
OpenNone
DuplicateNone
DuplicateNone
Resolvedepriestley
Resolvedbtrahan

Event Timeline

joshuaspence raised the priority of this task from to Needs Triage.
joshuaspence updated the task description. (Show Details)
joshuaspence added projects: Projects, Policy.
joshuaspence added subscribers: joshuaspence, epriestley.

I think this only has two reasonable settings: "all members of the project" and "only users who can edit the project, so it could just be a checkbox like "[√] Allow members to leave this project". This would require CAN_EDIT to leave.

This basically seems reasonable to me (to prevent mistakes if nothing else) but should maybe require administrative permission to set, since it's silly if I can make an unleaveable project called "i luv 2 eat soapz" and add you and you can't get out of it. We could wait for this to be an issue in reality, though -- I think more-public installs often lock down "create project" permission anyway.

  • Add a new application capability, like "Can Lock Projects", to the Projects application, with a default setting of "administrators".
  • Add a checkbox on the edit screen like [ ] Lock Project: Prevent members from leaving this project.. Require "Can Lock Projects" to adjust this. Use explainApplicationCapability() to render a link explaining why the user can or can not lock the project.
  • When a project is locked, require CAN_EDIT to leave it.