Plug password management
authorBruno Sinou <bsinou@argeo.org>
Wed, 16 Sep 2015 11:14:02 +0000 (11:14 +0000)
committerBruno Sinou <bsinou@argeo.org>
Wed, 16 Sep 2015 11:14:02 +0000 (11:14 +0000)
Clean transaction state observation

git-svn-id: https://svn.argeo.org/commons/trunk@8410 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc

org.argeo.security.ui.admin/META-INF/spring/common.xml
org.argeo.security.ui.admin/plugin.xml
org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/commands/NewUser.java
org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/UiAdminUtils.java
org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/UserTransactionProvider.java

index 1f6b56e3a918445eb8375ac250f413d6e9683c69..5cf10913b84ae8ed6922a2fd9d778efd0aee6ed9 100644 (file)
@@ -3,6 +3,13 @@
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"\r
        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">\r
 \r
+\r
+       <bean id="userTransactionProvider"\r
+               class="org.argeo.security.ui.admin.internal.UserTransactionProvider"\r
+               scope="singleton" lazy-init="false">\r
+               <property name="userTransaction" ref="userTransaction" />\r
+       </bean>\r
+\r
        <bean\r
                class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">\r
                <property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE" />\r
@@ -11,6 +18,7 @@
                </property>\r
        </bean>\r
 \r
-       <!-- <bean name="jcrSecurityModel" class="org.argeo.security.jackrabbit.JackrabbitSecurityModel" \r
-               /> -->\r
+\r
+\r
+\r
 </beans>
\ No newline at end of file
index e22ef0787495b52d8bd31b5424e02c076f66bc45..eae744960bfed6ce2d2d17084f99b7f59f39baf6 100644 (file)
        <!-- SERVICES -->
        <extension
        point="org.eclipse.ui.services">
-               <sourceProvider
+        <sourceProvider
+               id="org.argeo.security.ui.admin.userTransactionProvider"
+            provider="org.argeo.eclipse.spring.SpringExtensionFactory" >
+               
+<!--           <sourceProvider
                provider="org.argeo.security.ui.admin.internal.UserTransactionProvider">
-               <variable
+-->            <variable
                    name="org.argeo.security.ui.admin.userTransactionState"
                    priorityLevel="workbench">
                </variable>
index 656185b73e401f0c99cbc6d440d388b2f1a240b7..0154f03bdef9592db4c4ed87b4540f06111b2249 100644 (file)
@@ -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);
index 3872f8dfd86f90aa5bcaba63ed66affe40fe8d08..58ca19c6e5fbbf271e91597035b8d7f20460505a 100644 (file)
@@ -85,7 +85,6 @@ public class UiAdminUtils {
                                        .getService(ISourceProviderService.class);
                        UserTransactionProvider esp = (UserTransactionProvider) sourceProviderService
                                        .getSourceProvider(UserTransactionProvider.TRANSACTION_STATE);
-                       esp.setUserTransaction(userTransaction);
                        esp.fireTransactionStateChange();
                } catch (Exception e) {
                        throw new ArgeoException("Unable to begin transaction", e);
index 3a57c59adf347c67e8bc340b99862bb256f87e23..a3af53e63e478b6639e53b1f43f6662e27f0d56e 100644 (file)
@@ -11,15 +11,13 @@ import org.argeo.security.ui.admin.SecurityAdminPlugin;
 import org.eclipse.ui.AbstractSourceProvider;
 import org.eclipse.ui.ISources;
 
-/** Centralize interaction with the UserTransaction among the UI */
+/** Notifies the UI on UserTransaction state change */
 public class UserTransactionProvider extends AbstractSourceProvider {
        public final static String TRANSACTION_STATE = SecurityAdminPlugin.PLUGIN_ID
                        + ".userTransactionState";
        public final static String STATUS_ACTIVE = "status.active";
        public final static String STATUS_NO_TRANSACTION = "status.noTransaction";
 
-       private String transactionState = STATUS_NO_TRANSACTION;
-
        /* DEPENDENCY INJECTION */
        private UserTransaction userTransaction;
 
@@ -31,10 +29,7 @@ public class UserTransactionProvider extends AbstractSourceProvider {
        @Override
        public Map<String, String> getCurrentState() {
                Map<String, String> currentState = new HashMap<String, String>(1);
-               // TODO implement asking to the UserTransaction
-               // String transactionState = isActive ? STATUS_ACTIVE :
-               // STATUS_NO_TRANSACTION;
-               currentState.put(TRANSACTION_STATE, transactionState);
+               currentState.put(TRANSACTION_STATE, getInternalCurrentState());
                return currentState;
        }
 
@@ -42,23 +37,15 @@ public class UserTransactionProvider extends AbstractSourceProvider {
        public void dispose() {
        }
 
-       /** Publish the ability to change the state. */
-       public void setUserTransactionState(String newState) {
-               transactionState = newState;
-               // fireSourceChanged(ISources.WORKBENCH, TRANSACTION_STATE,
-               // transactionState);
-       }
-
-       private void refreshState() {
+       private String getInternalCurrentState() {
                try {
-                       if (userTransaction != null) {
-                               if (userTransaction.getStatus() == Status.STATUS_NO_TRANSACTION)
-                                       transactionState = STATUS_NO_TRANSACTION;
-                               else if (userTransaction.getStatus() == Status.STATUS_ACTIVE)
-                                       transactionState = STATUS_ACTIVE;
-                               fireSourceChanged(ISources.WORKBENCH, TRANSACTION_STATE,
-                                               transactionState);
-                       }
+                       String transactionState;
+                       if (userTransaction.getStatus() == Status.STATUS_NO_TRANSACTION)
+                               transactionState = STATUS_NO_TRANSACTION;
+                       else
+                               // if (userTransaction.getStatus() == Status.STATUS_ACTIVE)
+                               transactionState = STATUS_ACTIVE;
+                       return transactionState;
                } catch (Exception e) {
                        throw new ArgeoException("Unable to begin transaction", e);
                }
@@ -66,14 +53,12 @@ public class UserTransactionProvider extends AbstractSourceProvider {
 
        /** Publish the ability to notify a state change */
        public void fireTransactionStateChange() {
-               refreshState();
+               fireSourceChanged(ISources.WORKBENCH, TRANSACTION_STATE,
+                               getInternalCurrentState());
        }
 
-       /** FIXME: Rather inject the UserTransaction. */
-       @Deprecated
+       /* DEPENDENCY INJECTION */
        public void setUserTransaction(UserTransaction userTransaction) {
                this.userTransaction = userTransaction;
-               // dirty init
-               refreshState();
        }
 }
\ No newline at end of file