]> git.argeo.org Git - lgpl/argeo-commons.git/blobdiff - org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/commands/NewUser.java
Plug password management
[lgpl/argeo-commons.git] / org.argeo.security.ui.admin / src / org / argeo / security / ui / admin / commands / NewUser.java
index 235e4d7e9d084bb0b9370eb8e1ba47eaba5803c8..0154f03bdef9592db4c4ed87b4540f06111b2249 100644 (file)
@@ -17,6 +17,8 @@ package org.argeo.security.ui.admin.commands;
 
 import java.util.Dictionary;
 
+import javax.transaction.UserTransaction;
+
 import org.argeo.eclipse.ui.EclipseUiUtils;
 import org.argeo.eclipse.ui.dialogs.ErrorFeedback;
 import org.argeo.jcr.ArgeoNames;
@@ -49,10 +51,11 @@ import org.osgi.service.useradmin.UserAdmin;
 /** Open a wizard that enables creation of a new user. */
 public class NewUser extends AbstractHandler {
        // private final static Log log = LogFactory.getLog(NewUser.class);
-
        public final static String ID = SecurityAdminPlugin.PLUGIN_ID + ".newUser";
 
+       /* DEPENDENCY INJECTION */
        private UserAdmin userAdmin;
+       private UserTransaction userTransaction;
 
        // TODO implement a dynamic choice of the base dn
        private String getDn(String uid) {
@@ -80,10 +83,6 @@ public class NewUser extends AbstractHandler {
                        ((UsersView) part).refresh();
        }
 
-       public void setUserAdmin(UserAdmin userAdmin) {
-               this.userAdmin = userAdmin;
-       }
-
        private class NewUserWizard extends Wizard {
 
                // pages
@@ -100,8 +99,8 @@ public class NewUser extends AbstractHandler {
                public void addPages() {
                        mainUserInfo = new MainUserInfoWizardPage();
                        addPage(mainUserInfo);
-                       String message = "Dummy wizard to ease user creation tests: mail, last name are automatically "
-                                       + "generated form the uid, password are defauted to 'demo'.";
+                       String message = "Dummy wizard to ease user creation tests:\n Mail and last name are automatically "
+                                       + "generated form the uid. Password are defauted to 'demo'.";
                        mainUserInfo.setMessage(message, WizardPage.WARNING);
                }
 
@@ -112,6 +111,7 @@ public class NewUser extends AbstractHandler {
                                return false;
                        String username = mainUserInfo.getUsername();
                        try {
+                               UiAdminUtils.beginTransactionIfNeeded(userTransaction);
                                char[] password = mainUserInfo.getPassword();
                                User user = (User) userAdmin.createRole(getDn(username),
                                                Role.USER);
@@ -135,8 +135,7 @@ public class NewUser extends AbstractHandler {
                                if (UiAdminUtils.notNull(mailStr))
                                        props.put(UserAdminConstants.KEY_MAIL, mailStr);
 
-                               // TODO MANAGE Password
-                               // pwd1Txt.getText();
+                               user.getCredentials().put(null, password);
                                return true;
                        } catch (Exception e) {
                                ErrorFeedback.show("Cannot create new user " + username, e);
@@ -255,6 +254,12 @@ public class NewUser extends AbstractHandler {
                }
        }
 
-       // Local helpers
+       /* DEPENDENCY INJECTION */
+       public void setUserAdmin(UserAdmin userAdmin) {
+               this.userAdmin = userAdmin;
+       }
 
+       public void setUserTransaction(UserTransaction userTransaction) {
+               this.userTransaction = userTransaction;
+       }
 }
\ No newline at end of file