]> git.argeo.org Git - lgpl/argeo-commons.git/blobdiff - org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/commands/NewUser.java
Fix glitch on new user creation
[lgpl/argeo-commons.git] / org.argeo.security.ui.admin / src / org / argeo / security / ui / admin / internal / commands / NewUser.java
index 838e66ff57cb554264218195a84ebf95d689410c..7600883989eb33f3287eedb87880671dcbf6d401 100644 (file)
@@ -26,10 +26,9 @@ import org.argeo.ArgeoException;
 import org.argeo.eclipse.ui.EclipseUiUtils;
 import org.argeo.eclipse.ui.dialogs.ErrorFeedback;
 import org.argeo.jcr.ArgeoNames;
-import org.argeo.security.UserAdminService;
+import org.argeo.osgi.useradmin.LdifName;
 import org.argeo.security.ui.admin.SecurityAdminPlugin;
 import org.argeo.security.ui.admin.internal.UiAdminUtils;
-import org.argeo.security.ui.admin.internal.UserAdminConstants;
 import org.argeo.security.ui.admin.internal.UserAdminWrapper;
 import org.eclipse.core.commands.AbstractHandler;
 import org.eclipse.core.commands.ExecutionEvent;
@@ -53,6 +52,13 @@ import org.osgi.service.useradmin.UserAdminEvent;
 
 /** Open a wizard that enables creation of a new user. */
 public class NewUser extends AbstractHandler {
+       /**
+        * Email addresses must match this regexp pattern ({@value #EMAIL_PATTERN}.
+        * Thanks to <a href=
+        * "http://www.mkyong.com/regular-expressions/how-to-validate-email-address-with-regular-expression/"
+        * >this tip</a>.
+        */
+       public final static String EMAIL_PATTERN = "^[_A-Za-z0-9-]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$";
        // private final static Log log = LogFactory.getLog(NewUser.class);
        public final static String ID = SecurityAdminPlugin.PLUGIN_ID + ".newUser";
 
@@ -63,25 +69,10 @@ public class NewUser extends AbstractHandler {
                NewUserWizard newUserWizard = new NewUserWizard();
                WizardDialog dialog = new WizardDialog(
                                HandlerUtil.getActiveShell(event), newUserWizard);
-
                dialog.open();
-
-               // // Force refresh until the listener are implemented
-               // if (Window.OK == dialog.open())
-               // forceRefresh(event);
                return null;
        }
 
-       // private void forceRefresh(ExecutionEvent event) {
-       // IWorkbenchWindow iww = HandlerUtil.getActiveWorkbenchWindow(event);
-       // if (iww == null)
-       // return;
-       // IWorkbenchPage activePage = iww.getActivePage();
-       // IWorkbenchPart part = activePage.getActivePart();
-       // if (part instanceof UsersView)
-       // ((UsersView) part).refresh();
-       // }
-
        private class NewUserWizard extends Wizard {
 
                // pages
@@ -119,20 +110,20 @@ public class NewUser extends AbstractHandler {
 
                                String lastNameStr = lastNameTxt.getText();
                                if (UiAdminUtils.notNull(lastNameStr))
-                                       props.put(UserAdminConstants.KEY_LASTNAME, lastNameStr);
+                                       props.put(LdifName.sn.name(), lastNameStr);
 
                                String firstNameStr = firstNameTxt.getText();
                                if (UiAdminUtils.notNull(firstNameStr))
-                                       props.put(UserAdminConstants.KEY_FIRSTNAME, firstNameStr);
+                                       props.put(LdifName.givenname.name(), firstNameStr);
 
                                String cn = UiAdminUtils
                                                .getDefaultCn(firstNameStr, lastNameStr);
                                if (UiAdminUtils.notNull(cn))
-                                       props.put(UserAdminConstants.KEY_CN, cn);
+                                       props.put(LdifName.cn.name(), cn);
 
                                String mailStr = primaryMailTxt.getText();
                                if (UiAdminUtils.notNull(mailStr))
-                                       props.put(UserAdminConstants.KEY_MAIL, mailStr);
+                                       props.put(LdifName.mail.name(), mailStr);
 
                                char[] password = mainUserInfo.getPassword();
                                user.getCredentials().put(null, password);
@@ -239,8 +230,7 @@ public class NewUser extends AbstractHandler {
                                                .getRole(getDn(name));
                                if (role != null)
                                        return "User " + name + " already exists";
-                               if (!primaryMailTxt.getText().matches(
-                                               UserAdminService.EMAIL_PATTERN))
+                               if (!primaryMailTxt.getText().matches(EMAIL_PATTERN))
                                        return "Not a valid email address";
                                if (lastNameTxt.getText().trim().equals(""))
                                        return "Specify a last name";