X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.security.core%2Fsrc%2Forg%2Fargeo%2Fosgi%2Fuseradmin%2FLdifGroup.java;h=cf65784e09b5ef0ce822ab3776b9ef85f9aad607;hb=22d5278b56823c2220709628286a5051d143863e;hp=3e9d44750b2ef333326d36cf2a971483c74b61e4;hpb=25071ab6bcb2df1fa4057c2c04137f2d606772e7;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.security.core/src/org/argeo/osgi/useradmin/LdifGroup.java b/org.argeo.security.core/src/org/argeo/osgi/useradmin/LdifGroup.java index 3e9d44750..cf65784e0 100644 --- a/org.argeo.security.core/src/org/argeo/osgi/useradmin/LdifGroup.java +++ b/org.argeo.security.core/src/org/argeo/osgi/useradmin/LdifGroup.java @@ -21,10 +21,16 @@ public class LdifGroup extends LdifUser implements DirectoryGroup { @Override public boolean addMember(Role role) { + getUserAdmin().checkEdit(); + if (!isEditing()) + startEditing(); + Attribute member = getAttributes().get(memberAttributeId); if (member != null) { if (member.contains(role.getName())) return false; + else + member.add(role.getName()); } else getAttributes().put(memberAttributeId, role.getName()); return true; @@ -37,6 +43,10 @@ public class LdifGroup extends LdifUser implements DirectoryGroup { @Override public boolean removeMember(Role role) { + getUserAdmin().checkEdit(); + if (!isEditing()) + startEditing(); + Attribute member = getAttributes().get(memberAttributeId); if (member != null) { if (!member.contains(role.getName()))