X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;ds=sidebyside;f=security%2Fruntime%2Forg.argeo.security.core%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fsecurity%2Fcore%2FDefaultSecurityService.java;h=ef64337ebed1d99762cf642a0c496a8892447980;hb=00a5c6cc0b5ed08afba5b34567acd5a4fec4826f;hp=74aa57cd50b8759f047890b51f324be21c13e93f;hpb=54ca073308e726107a5e59b50ce875ebeb43b965;p=lgpl%2Fargeo-commons.git diff --git a/security/runtime/org.argeo.security.core/src/main/java/org/argeo/security/core/DefaultSecurityService.java b/security/runtime/org.argeo.security.core/src/main/java/org/argeo/security/core/DefaultSecurityService.java index 74aa57cd5..ef64337eb 100644 --- a/security/runtime/org.argeo.security.core/src/main/java/org/argeo/security/core/DefaultSecurityService.java +++ b/security/runtime/org.argeo.security.core/src/main/java/org/argeo/security/core/DefaultSecurityService.java @@ -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); @@ -36,7 +45,7 @@ public class DefaultSecurityService implements ArgeoSecurityService { .getPassword(); SimpleArgeoUser simpleArgeoUser = new SimpleArgeoUser(user); simpleArgeoUser.setPassword(password); - securityDao.update(user); + securityDao.update(simpleArgeoUser); } public void setArgeoSecurity(ArgeoSecurity argeoSecurity) {