not sure if this helps you but i have a myBaseAction class as follows:


package nl.topticketline.topnet.util;

import org.acegisecurity.Authentication;
import org.acegisecurity.context.SecurityContextHolder;
import org.acegisecurity.userdetails.UserDetails;
import org.appfuse.model.Role;
import org.appfuse.model.User;
import org.appfuse.webapp.action.BaseAction;

/**
* This can be extended by action classes instead of the BaseAction.
*
* @author tibi
*
*/
public abstract class MyBaseAction extends BaseAction {
   public static final String AJAX = "AJAX";

   /**
    * 1 will be true other values will be false.
    */
   public boolean getValueAsBoolean(String booleanStr) {
       if ("1".equals(booleanStr)) {
           return true;
       }
       return false;
   }

   /**
    * Will return the userName as string from the logged in user.
    *
    * @return
    */
   public String getLoggedInUserName() {
       if (SecurityContextHolder.getContext() != null) {
Authentication auth = SecurityContextHolder.getContext().getAuthentication();
           if (auth != null) {
               Object obj = auth.getPrincipal();
               log.debug("object:" + obj);
               if (obj != null) {
                   if (obj instanceof UserDetails) {
                       return ((UserDetails) obj).getUsername();
                   } else {
                       return (String) obj;
                   }
               }
           }
       }
       return null;
   }

   /**
    * Will return the logged in user.
    *
    * @return
    */
   public User getLoggedInUser() {
       String userName = getLoggedInUserName();
       if (userName == null) {
           log.warn("userName is null");
           return null;
       }
       log.debug("getting user:" + userName);
       if (userManager == null) {
           return null;
       }
       return userManager.getUserByUsername(userName);
   }

   /**
    * checks if the logged in user has the role provided.
    *
    * @param roleName
    * @return
    */
   public boolean loggedInUserHasRole(String roleName) {
if (roleName == null || roleName.length() == 0 || getLoggedInUser() == null) {
           log.warn("roleName is not set right or there is no user found");
           return false;
       }
       for (Role role : getLoggedInUser().getRoles()) {
           if (roleName.equals(role.getName())) {
               return true;
           }
       }
       return false;
   }
}

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to