X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.security.ui.admin%2Fsrc%2Forg%2Fargeo%2Fsecurity%2Fui%2Fadmin%2Finternal%2Fcommands%2FDeleteGroups.java;h=df5d430abd1fad48dee70330d558819dec39c415;hb=c13da2a3a91edd21b54db7563727d009def37d3e;hp=d21cc48b153ff3b2fef922ae655ac8e1d353f850;hpb=3400a80f88b418c598bf30f27b13ce1360902376;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/commands/DeleteGroups.java b/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/commands/DeleteGroups.java index d21cc48b1..df5d430ab 100644 --- a/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/commands/DeleteGroups.java +++ b/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/commands/DeleteGroups.java @@ -19,8 +19,8 @@ import java.util.ArrayList; import java.util.Iterator; import java.util.List; +import org.argeo.cms.util.useradmin.UserAdminUtils; import org.argeo.security.ui.admin.SecurityAdminPlugin; -import org.argeo.security.ui.admin.internal.UserAdminUtils; import org.argeo.security.ui.admin.internal.UserAdminWrapper; import org.argeo.security.ui.admin.internal.parts.UserEditorInput; import org.eclipse.core.commands.AbstractHandler; @@ -71,10 +71,8 @@ public class DeleteGroups extends AbstractHandler { UserAdmin userAdmin = userAdminWrapper.getUserAdmin(); IWorkbenchPage iwp = HandlerUtil.getActiveWorkbenchWindow(event) .getActivePage(); - for (Group group : groups) { String groupName = group.getName(); - // TODO find a way to close the editor cleanly if opened. Cannot be // done through the UserAdminListeners, it causes a // java.util.ConcurrentModificationException because disposing the @@ -82,11 +80,16 @@ public class DeleteGroups extends AbstractHandler { IEditorPart part = iwp.findEditor(new UserEditorInput(groupName)); if (part != null) iwp.closeEditor(part, false); - userAdmin.removeRole(groupName); + } + userAdminWrapper.commitOrNotifyTransactionStateChange(); + + // Update the view + for (Group group : groups) { userAdminWrapper.notifyListeners(new UserAdminEvent(null, UserAdminEvent.ROLE_REMOVED, group)); } + return null; }