Improve security
[lgpl/argeo-commons.git] / security / runtime / org.argeo.security.core / src / main / java / org / argeo / security / core / DefaultSecurityService.java
index 0467de8cb967474593679373cc8bd3b74bd50c6e..ef64337ebed1d99762cf642a0c496a8892447980 100644 (file)
@@ -1,5 +1,6 @@
 package org.argeo.security.core;
 
+import org.argeo.ArgeoException;
 import org.argeo.security.ArgeoSecurity;
 import org.argeo.security.ArgeoSecurityDao;
 import org.argeo.security.ArgeoSecurityService;
@@ -25,6 +26,14 @@ public class DefaultSecurityService implements ArgeoSecurityService {
                securityDao.update(user);
        }
 
+       public void updateCurrentUserPassword(String oldPassword, String newPassword) {
+               SimpleArgeoUser user = new SimpleArgeoUser(securityDao.getCurrentUser());
+               if (!user.getPassword().equals(oldPassword))
+                       throw new ArgeoException("Old password is not correct.");
+               user.setPassword(newPassword);
+               securityDao.update(user);
+       }
+
        public void newUser(ArgeoUser user) {
                user.getUserNatures().clear();
                argeoSecurity.beforeCreate(user);