mirror of
https://github.com/scm-manager/scm-manager.git
synced 2025-11-10 15:35:49 +01:00
merge with branch issue-439
This commit is contained in:
@@ -56,6 +56,8 @@ import javax.xml.bind.annotation.XmlRootElement;
|
||||
/**
|
||||
* Organizes users into a group for easier permissions management.
|
||||
*
|
||||
* TODO for 2.0: Use a set instead of a list for members
|
||||
*
|
||||
* @author Sebastian Sdorra
|
||||
*/
|
||||
@XmlRootElement(name = "groups")
|
||||
|
||||
@@ -35,6 +35,8 @@ package sonia.scm.group;
|
||||
|
||||
//~--- non-JDK imports --------------------------------------------------------
|
||||
|
||||
import com.google.common.collect.ImmutableSet;
|
||||
import com.google.common.collect.Lists;
|
||||
import com.google.inject.Inject;
|
||||
import com.google.inject.Provider;
|
||||
import com.google.inject.Singleton;
|
||||
@@ -140,6 +142,7 @@ public class DefaultGroupManager extends AbstractGroupManager
|
||||
throw new GroupAllreadyExistExeption();
|
||||
}
|
||||
|
||||
removeDuplicateMembers(group);
|
||||
group.setCreationDate(System.currentTimeMillis());
|
||||
fireEvent(group, HandlerEvent.BEFORE_CREATE);
|
||||
groupDAO.add(group);
|
||||
@@ -221,6 +224,7 @@ public class DefaultGroupManager extends AbstractGroupManager
|
||||
|
||||
if (groupDAO.contains(name))
|
||||
{
|
||||
removeDuplicateMembers(group);
|
||||
group.setLastModified(System.currentTimeMillis());
|
||||
fireEvent(group, HandlerEvent.BEFORE_MODIFY);
|
||||
groupDAO.modify(group);
|
||||
@@ -439,6 +443,23 @@ public class DefaultGroupManager extends AbstractGroupManager
|
||||
return groupDAO.getLastModified();
|
||||
}
|
||||
|
||||
//~--- methods --------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Remove duplicate members from group.
|
||||
* Have a look at issue #439
|
||||
*
|
||||
*
|
||||
* @param group group
|
||||
*/
|
||||
private void removeDuplicateMembers(Group group)
|
||||
{
|
||||
List<String> members =
|
||||
Lists.newArrayList(ImmutableSet.copyOf(group.getMembers()));
|
||||
|
||||
group.setMembers(members);
|
||||
}
|
||||
|
||||
//~--- fields ---------------------------------------------------------------
|
||||
|
||||
/** Field description */
|
||||
|
||||
Reference in New Issue
Block a user