stable
Clone or download
This reverts commit ba172e8899460c503ccb4836b2a63da63d104cbc. Part of story #13490 have a consistent management of project & groups members How to test: Given Project A with ugroup "Source" and Project B with ugroup "Destination". - When I create a binding from Destination to Source, members of Source will no longer be added as project members of Project B. - When I add a regular user to ugroup Source, they will no longer be added as project member of Project B. - If Project B is private, when I add a user to ugroup Source and they are NOT project members of B, they will NOT be added in ugroup Destination - If Project B is private and a user is already project member of B, when I add that user to ugroup Source, they will be added in ugroup Destination. - When I switch Project B from Public to Private, all members of Destination that were not project members of B will be removed from Destination. - When I switch Project B from Private to Public, all members of Source that were not project members of B will be added to Destination. This commit introduced several problems: - It spams feedback when adding a binding, adding or removing project members. Bound ugroups are refreshed on these operations. - When I remove a project member that is also a member of a bound ugroup, they are re-added immediately. Since bound ugroups are refreshed, and user is no longer project members, the refresh re-adds them. That means there is no way to remove someone from the project when they come from a bound ugroup. - In the case above, given the project member was also member of a second, non-bound ugroup, when I remove them from project members, they would be removed from the non-bound ugroup, but not from the bound ugroup, leading to inconsistencies. Change-Id: I1dda12cd54fcce8d3e86ce090944f4ff4e66a287
Modified Files
Name | ||||
---|---|---|---|---|
M | site-content/en_US/project/project.tab | +1 | −0 | Go to diff View file |
M | site-content/fr_FR/LC_MESSAGES/tuleap-core.po | +0 | −8 | Go to diff View file |
M | site-content/fr_FR/project/project.tab | +1 | −0 | Go to diff View file |
M | src/common/Project/ProjectUGroup.php | +6 | −2 | Go to diff View file |
M | src/common/Project/UGroupBinding.class.php | +1 | −26 | Go to diff View file |
M | src/common/Project/UGroupManager.class.php | +3 | −1 | Go to diff View file |
M | src/common/Project/UGroups/Binding/BoundUGroupRefresher.php | +8 | −31 | Go to diff View file |
M | src/common/Project/UGroups/Membership/DynamicUGroups/ProjectMemberAdderWithStatusCheckAndNotifications.php | +11 | −0 | Go to diff View file |
M | src/common/Project/UGroups/Membership/DynamicUGroups/ProjectMemberAdderWithoutStatusCheckAndNotifications.php | +11 | −0 | Go to diff View file |
M | src/common/Project/UGroups/Membership/MemberAdder.php | +0 | −1 | Go to diff View file |
M | src/common/Request/RouteCollector.php | +3 | −1 | Go to diff View file |
M | src/common/dao/UGroupUserDao.class.php | +3 | −4 | Go to diff View file |
M | src/www/project/admin/editugroup.php | +1 | −1 | Go to diff View file |
M | tests/phpunit/common/Project/UGroups/Binding/BoundUGroupRefresherTest.php | +5 | −54 | Go to diff View file |