Expand my Community achievements bar.

Access right for ServiceUer to Change users password

Avatar

Level 4

I created a forget Password service for the user to reset his/her own password by sending a link to his email and providing a reset password page.

 

Inside this service I use:

session = resolver.adaptTo(Session.class);

UserManager userMgr = resolver.adaptTo(UserManager.class);
Authorizable a = userMgr.getAuthorizable(userid, User.class);
User user = (User)userMgr.getAuthorizable(userid, User.class);

user.changePassword(newPassword);

session.save()

 

The resolver here is a resourceResolver for a serviceUser Account  "userManager" and I have granted access to '/home' read/modify/create,Read ACL,Edit ACL but I still receive "javax.jcr.AccessDeniedException: OakAccess0000: Access denied " when I run "session.save()"

 

Anything I am missing here?

 

Eric_Stricker_0-1592559543635.png

 

2 Replies

Avatar

Employee Advisor

@Eric_Stricker  Were you able to get this working Or you still need help?

Avatar

Level 4

We did get around this.

 

We are now using the build in user 'communities-user-admin' instead of our own service account. We do like to understand why our own account did not work. Most likely because we did not add our own service account to the 'user-administrators' group role which has probably a setting to allow changes to users&groups.

 

Note: we still cannot add node/change node for the the build in 'admin' account. Most likely this is a protected account and only 'admin' user can change 'admin' accounts.