Package org.nemesis.forum.webapp.admin.action

Source Code of org.nemesis.forum.webapp.admin.action.ListGroupUsersAction

package org.nemesis.forum.webapp.admin.action;

import java.util.Iterator;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.struts.action.ActionError;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.nemesis.forum.ForumFactory;
import org.nemesis.forum.Group;
import org.nemesis.forum.ProfileManager;
import org.nemesis.forum.User;
import org.nemesis.forum.util.SecurityTools;
import org.nemesis.forum.webapp.admin.bean.GroupUsersBean;
import org.nemesis.forum.webapp.admin.bean.UserBean;
import org.nemesis.forum.webapp.exception.UnauthorizedException;


public class ListGroupUsersAction extends BaseAction {
 
  static protected Log log =LogFactory.getLog(ListGroupUsersAction.class);

  public ActionForward execute(ActionMapping mapping,
         ActionForm form,
         HttpServletRequest request,
         HttpServletResponse response)
  throws Exception {

    //check logon
    checkUser(request);
   
   
    ActionErrors errors = new ActionErrors();
       
    try {
       
       
        ForumFactory forumFactory = ForumFactory.getInstance(getAuthToken(request));
        ProfileManager manager = forumFactory.getProfileManager();
        User user = manager.getUser(getAuthToken(request).getUserID());
        try {
          //retrieve the group
          String gid=request.getParameter("id");
          if(gid==null) gid=""+request.getAttribute("id");//back to del or add action
         
          Group group = manager.getGroup(Integer.parseInt(gid));
          //check permission
          checkPermission(request,OperationConstants.LIST_GROUP_USERS, group);
          //populate bean
          GroupUsersBean b=new GroupUsersBean();
          b.setId(group.getID());
          b.setName(group.getName());
          b.setDescription(group.getDescription());
          b.setNumAdmins(group.getAdministratorCount());
          b.setNumMembers(group.getMemberCount()) ;
         
          User u=null;
          UserBean ub=null;
          for(Iterator it=group.administrators();it.hasNext();){
            u=(User)it.next();
            ub = new UserBean();
            ub.setId(u.getID());
            ub.setName(u.getName());
            ub.setUserName(u.getUsername());
            ub.setEmail(u.getEmail());
            b.addAdmin(ub);
          }
          for(Iterator it=group.members();it.hasNext();){
            u=(User)it.next();
            ub = new UserBean();
            ub.setId(u.getID());
            ub.setName(u.getName());
            ub.setUserName(u.getUsername());
            ub.setEmail(u.getEmail());
            b.addMember(ub);
          }
          request.setAttribute("gp",b);
          request.setAttribute("isSystemAdmin",new Boolean(SecurityTools.isSystemAdmin(getAuthToken(request))));
        }
        catch( NumberFormatException aee ) {
          return mapping.findForward("cancel");
        }
        catch( UnauthorizedException aee ) {
          errors.add("general"new ActionError("listGroupUsers.unauthorized"));
        }
       
       
    } catch (Exception e) {
      String eid=this.getClass().getName()+"_"+System.currentTimeMillis();
      log.error("eid:"+eid+"\nsessionID" +request.getSession().getId(),e;     
      errors.add("general"new ActionError("error.general","erreur id:"+eid));           
    }
   
    if (!errors.isEmpty()) {
      saveErrors(request, errors);
      return mapping.findForward("cancel");
    }
   
    return mapping.findForward("view");
  }

}
TOP

Related Classes of org.nemesis.forum.webapp.admin.action.ListGroupUsersAction

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.