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;
/** 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";
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
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);
.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";