Highlighted

Access right for ServiceUer to Change users password

Eric_Stricker

19-06-2020

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

 

Replies

Highlighted

Eric_Stricker

06-07-2020

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.