X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;ds=sidebyside;f=org.argeo.security.ui.admin%2Fsrc%2Forg%2Fargeo%2Fsecurity%2Fui%2Fadmin%2Finternal%2Fcommands%2FNewGroup.java;h=75b9b0b33e4e52e06d675014c644d096a42c0d2e;hb=c13da2a3a91edd21b54db7563727d009def37d3e;hp=37bae611ffa7c11cb753bd77e65b4df85bf28046;hpb=f7f798430931fbd007c57a54a40e684de77c77df;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/commands/NewGroup.java b/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/commands/NewGroup.java index 37bae611f..75b9b0b33 100644 --- a/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/commands/NewGroup.java +++ b/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/commands/NewGroup.java @@ -18,7 +18,7 @@ package org.argeo.security.ui.admin.internal.commands; import java.util.Dictionary; import java.util.Map; -import org.argeo.ArgeoException; +import org.argeo.cms.CmsException; import org.argeo.eclipse.ui.EclipseUiUtils; import org.argeo.eclipse.ui.dialogs.ErrorFeedback; import org.argeo.jcr.ArgeoNames; @@ -64,10 +64,10 @@ public class NewGroup extends AbstractHandler { private class NewGroupWizard extends Wizard { - // pages + // Pages private MainGroupInfoWizardPage mainGroupInfo; - // End user fields + // UI fields private Text dNameTxt, commonNameTxt, descriptionTxt; private Combo baseDnCmb; @@ -88,12 +88,14 @@ public class NewGroup extends AbstractHandler { String commonName = commonNameTxt.getText(); try { userAdminWrapper.beginTransactionIfNeeded(); + String dn = getDn(commonName); Group group = (Group) userAdminWrapper.getUserAdmin() - .createRole(getDn(commonName), Role.GROUP); + .createRole(dn, Role.GROUP); Dictionary props = group.getProperties(); String descStr = descriptionTxt.getText(); if (EclipseUiUtils.notEmpty(descStr)) props.put(LdifName.description.name(), descStr); + userAdminWrapper.commitOrNotifyTransactionStateChange(); userAdminWrapper.notifyListeners(new UserAdminEvent(null, UserAdminEvent.ROLE_CREATED, group)); return true; @@ -133,7 +135,6 @@ public class NewGroup extends AbstractHandler { "Common name"); commonNameTxt.addFocusListener(this); - Label descLbl = new Label(bodyCmp, SWT.LEAD); descLbl.setText("Description"); descLbl.setLayoutData(new GridData(SWT.RIGHT, SWT.TOP, false, @@ -171,7 +172,7 @@ public class NewGroup extends AbstractHandler { public void focusGained(FocusEvent event) { } - /** @return error message or null if complete */ + /** @return the error message or null if complete */ protected String checkComplete() { String name = commonNameTxt.getText(); @@ -215,7 +216,7 @@ public class NewGroup extends AbstractHandler { private void initialiseDnCmb(Combo combo) { Map dns = userAdminWrapper.getKnownBaseDns(true); if (dns.isEmpty()) - throw new ArgeoException( + throw new CmsException( "No writable base dn found. Cannot create group"); combo.setItems(dns.keySet().toArray(new String[0])); if (dns.size() == 1)