1. Global consistency for private projects
This covers "Private" as well as "Private incl. Restricted" users. In both case, the management of restricted is not modified.
Scenario 1:
- Given a user, not already project member
- When I add her to any user group of the project (either "dynamic" like project admin, or static like "Developers)
- Then the user is also added as project member.
- And I have a "Warning" feedback telling me that user was also added as member of the project
2. Add a Synchronous Management of project members
Synchronous Project Member management means that there is no needed to explicitly managed "project_members" group in most cases, admins just have to add or remove people from groups and everything is kept in sync.
This is a new option at project administration level "Synchronous Project Members Management", it's set to "Off" by default. So, for existing installation, at the end of this story, nothing change except the "Global consistency for private projects" part.
When "Synchronous Project Members Management" is switched "On" for a project:
Scenario 2.1:
- Given a user, not already project member
- When I add her to any user group of the project
- Then the user is also added as project member.
- And I have a "Warning" feedback telling me that user was also added as member of the project
Scenario 2.2:
- Given a user member of one user group of the project (admin, developers, ...)
- When I remove her from project_member
- User is also removed from all the other groups she belongs to
- And I get a feedback message to inform me about that
Scenario 2.3:
- Given a user member of one user group of the project (admin, developers, ...)
- When I remove her from one group execpt project_member
- Then I'm getting a confirmation modal "Do you want to remove XXX from the project ? XXX is also member of [list of groups] ?" with 3 options
- "Yes, I want to remove XXX from the project"
- "No, I want to remove XXX only from YYY group"
- Cancel
- And the user is removed from groups according to the choice above
Scenario 2.6:
- When a user_group is removed
- Then a confirmation modale is displayed to inform admin that users will remains project_members
Scenario 2.7
- When a project with "synchronized project members" is used as a project template
- Then on project creation, all user groups are duplicated with their members
- And project members is duplicated with all members except project administrators
- that would mean that administrators of templates would become member of all projects that are created on this base.
Scenario 3.0
- When project visibility change from private to public
- Then the flag "Synchronous Project Members Management" must be kept on (admin can disable if they want to)