Open
Description
There are two types of users: "owners" and "collaborators".
The goal of this enhancement is to tighten who can control the users of a project.
The first part of this is to manage ownership vs. collaborator types.
- owners can change a collaborator to an owner, or an owner to a collaborator
- it is not possible to remove an owner
- it is not possible to change the last owner to a collaborator (i.e. one owner must be the minimum)
- collaborators cannot change a user type (in particular, can't make oneself or others to be an owner)
- owners can step down as being an owner by changing their own type, if there is another owner
The second part:
Add a setting to projects, which is disabled by default: "only allow owners to manage collaborators". The disabled behavior is the current behavior.
If it is enabled, there is one additional constraint: collaborators cannot add or remove other collaborators – just like they cannot remove an owner in all the cases.