Fix various issues:
[lgpl/argeo-commons.git] / security / runtime / org.argeo.security.core / src / main / java / org / argeo / security / core / DefaultSecurityService.java
index b69e02a4097115f08fa68e4fe982d663fac47754..74aa57cd50b8759f047890b51f324be21c13e93f 100644 (file)
@@ -4,7 +4,7 @@ import org.argeo.security.ArgeoSecurity;
 import org.argeo.security.ArgeoSecurityDao;
 import org.argeo.security.ArgeoSecurityService;
 import org.argeo.security.ArgeoUser;
-import org.argeo.security.BasicArgeoUser;
+import org.argeo.security.SimpleArgeoUser;
 
 public class DefaultSecurityService implements ArgeoSecurityService {
        private ArgeoSecurity argeoSecurity = new DefaultArgeoSecurity();
@@ -19,16 +19,26 @@ public class DefaultSecurityService implements ArgeoSecurityService {
        }
 
        public void updateUserPassword(String username, String password) {
-               BasicArgeoUser user = new BasicArgeoUser(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;
        }