]> git.argeo.org Git - lgpl/argeo-commons.git/blobdiff - org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/commands/NewUser.java
Improve and simplify OSGi Boot
[lgpl/argeo-commons.git] / org.argeo.security.ui.admin / src / org / argeo / security / ui / admin / internal / commands / NewUser.java
index 16e444dc5b91ac686ece74bcf86ae687358e5a2e..c04c83562f3cad02fdbbed82a40b5eedf4cd728e 100644 (file)
@@ -23,14 +23,14 @@ import javax.naming.InvalidNameException;
 import javax.naming.ldap.LdapName;
 import javax.naming.ldap.Rdn;
 
-import org.argeo.ArgeoException;
+import org.argeo.cms.CmsException;
+import org.argeo.cms.util.useradmin.UserAdminUtils;
 import org.argeo.eclipse.ui.EclipseUiUtils;
 import org.argeo.eclipse.ui.dialogs.ErrorFeedback;
 import org.argeo.jcr.ArgeoNames;
 import org.argeo.osgi.useradmin.LdifName;
 import org.argeo.osgi.useradmin.UserAdminConf;
 import org.argeo.security.ui.admin.SecurityAdminPlugin;
-import org.argeo.security.ui.admin.internal.UiAdminUtils;
 import org.argeo.security.ui.admin.internal.UserAdminWrapper;
 import org.eclipse.core.commands.AbstractHandler;
 import org.eclipse.core.commands.ExecutionEvent;
@@ -106,33 +106,33 @@ public class NewUser extends AbstractHandler {
                        if (!canFinish())
                                return false;
                        String username = mainUserInfo.getUsername();
+                       userAdminWrapper.beginTransactionIfNeeded();
                        try {
-                               userAdminWrapper.beginTransactionIfNeeded();
                                User user = (User) userAdminWrapper.getUserAdmin().createRole(
                                                getDn(username), Role.USER);
 
                                Dictionary props = user.getProperties();
 
                                String lastNameStr = lastNameTxt.getText();
-                               if (UiAdminUtils.notNull(lastNameStr))
+                               if (EclipseUiUtils.notEmpty(lastNameStr))
                                        props.put(LdifName.sn.name(), lastNameStr);
 
                                String firstNameStr = firstNameTxt.getText();
-                               if (UiAdminUtils.notNull(firstNameStr))
+                               if (EclipseUiUtils.notEmpty(firstNameStr))
                                        props.put(LdifName.givenName.name(), firstNameStr);
 
-                               String cn = UiAdminUtils
-                                               .getDefaultCn(firstNameStr, lastNameStr);
-                               if (UiAdminUtils.notNull(cn))
+                               String cn = UserAdminUtils.buildDefaultCn(firstNameStr,
+                                               lastNameStr);
+                               if (EclipseUiUtils.notEmpty(cn))
                                        props.put(LdifName.cn.name(), cn);
 
                                String mailStr = primaryMailTxt.getText();
-                               if (UiAdminUtils.notNull(mailStr))
+                               if (EclipseUiUtils.notEmpty(mailStr))
                                        props.put(LdifName.mail.name(), mailStr);
 
                                char[] password = mainUserInfo.getPassword();
                                user.getCredentials().put(null, password);
-
+                               userAdminWrapper.commitOrNotifyTransactionStateChange();
                                userAdminWrapper.notifyListeners(new UserAdminEvent(null,
                                                UserAdminEvent.ROLE_CREATED, user));
                                return true;
@@ -289,7 +289,7 @@ public class NewUser extends AbstractHandler {
                private void initialiseDnCmb(Combo combo) {
                        Map<String, String> dns = userAdminWrapper.getKnownBaseDns(true);
                        if (dns.isEmpty())
-                               throw new ArgeoException(
+                               throw new CmsException(
                                                "No writable base dn found. Cannot create user");
                        combo.setItems(dns.keySet().toArray(new String[0]));
                        if (dns.size() == 1)
@@ -306,7 +306,7 @@ public class NewUser extends AbstractHandler {
                                return username + "@" + (String) rdns.get(1).getValue() + '.'
                                                + (String) rdns.get(0).getValue();
                        } catch (InvalidNameException e) {
-                               throw new ArgeoException("Unable to generate mail for "
+                               throw new CmsException("Unable to generate mail for "
                                                + username + " with base dn " + baseDn, e);
                        }
                }