Issue Details (XML | Word | Printable)

Key: APF-1207
Type: Bug Bug
Status: Open Open
Priority: Major Major
Assignee: Matt Raible
Reporter: Thomas Ramapuram
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
AppFuse

Appfuse Strust not hashing Password if user has ROLE_ADMIN

Created: 07/Jul/10 12:03 AM   Updated: 07/Jul/10 12:03 AM
Return to search
Component/s: Web - Struts
Affects Version/s: None
Fix Version/s: None


 Description  « Hide
The save user does not hash the password in ADMIN_ROLE.
I think it is because we are changing the user in the Action outside the transaction
Code in User Action:
        if (getRequest().isUserInRole(Constants.ADMIN_ROLE)) {
             user.getRoles().clear(); // APF-788: Removing roles from user doesn't work
             String[] userRoles = getRequest().getParameterValues("userRoles");

             for (int i = 0; userRoles != null && i < userRoles.length; i++) {
                 String roleName = userRoles[i];
                 user.addRole(roleManager.getRole(roleName));

What I did to solve this issue was to have another method in UserManager and call diffrent methods depending on the role eg:
        try {
            if(!getRequest().isUserInRole(Constants.ADMIN_ROLE)){
                userManager.saveUser(user);
            }else{
                String[] userRoles = getRequest().getParameterValues("userRoles");
                userManager.saveUser(user,userRoles);
            }
        }

I am not sure if I did it the right way.

There are no entries against this issue.