Fix various issues:
[lgpl/argeo-commons.git] / security / runtime / org.argeo.security.core / src / main / java / org / argeo / security / core / DefaultSecurityService.java
index 5959704108c27627a8725a1c7d550a327d6092d2..74aa57cd50b8759f047890b51f324be21c13e93f 100644 (file)
@@ -19,16 +19,26 @@ public class DefaultSecurityService implements ArgeoSecurityService {
        }
 
        public void updateUserPassword(String username, String password) {
-               SimpleArgeoUser user = new SimpleArgeoUser(securityDao.getUser(username));
+               SimpleArgeoUser user = new SimpleArgeoUser(securityDao
+                               .getUser(username));
                user.setPassword(password);
                securityDao.update(user);
        }
 
        public void newUser(ArgeoUser user) {
+               user.getUserNatures().clear();
                argeoSecurity.beforeCreate(user);
                securityDao.create(user);
        }
 
+       public void updateUser(ArgeoUser user) {
+               String password = securityDao.getUserWithPassword(user.getUsername())
+                               .getPassword();
+               SimpleArgeoUser simpleArgeoUser = new SimpleArgeoUser(user);
+               simpleArgeoUser.setPassword(password);
+               securityDao.update(user);
+       }
+
        public void setArgeoSecurity(ArgeoSecurity argeoSecurity) {
                this.argeoSecurity = argeoSecurity;
        }