1 package org.nemesis.forum.webapp.admin.action; 2 3 import java.util.Iterator ; 4 5 import javax.servlet.http.HttpServletRequest ; 6 import javax.servlet.http.HttpServletResponse ; 7 8 import org.apache.commons.logging.Log; 9 import org.apache.commons.logging.LogFactory; 10 import org.apache.struts.action.ActionError; 11 import org.apache.struts.action.ActionErrors; 12 import org.apache.struts.action.ActionForm; 13 import org.apache.struts.action.ActionForward; 14 import org.apache.struts.action.ActionMapping; 15 import org.nemesis.forum.ForumFactory; 16 import org.nemesis.forum.Group; 17 import org.nemesis.forum.ProfileManager; 18 import org.nemesis.forum.User; 19 import org.nemesis.forum.util.SecurityTools; 20 import org.nemesis.forum.webapp.admin.bean.GroupUsersBean; 21 import org.nemesis.forum.webapp.admin.bean.UserBean; 22 import org.nemesis.forum.webapp.exception.UnauthorizedException; 23 24 25 public class ListGroupUsersAction extends BaseAction { 26 27 static protected Log log =LogFactory.getLog(ListGroupUsersAction.class); 28 29 public ActionForward execute(ActionMapping mapping, 30 ActionForm form, 31 HttpServletRequest request, 32 HttpServletResponse response) 33 throws Exception { 34 35 checkUser(request); 37 38 39 ActionErrors errors = new ActionErrors(); 40 41 try { 42 43 44 ForumFactory forumFactory = ForumFactory.getInstance(getAuthToken(request)); 45 ProfileManager manager = forumFactory.getProfileManager(); 46 User user = manager.getUser(getAuthToken(request).getUserID()); 47 try { 48 String gid=request.getParameter("id"); 50 if(gid==null) gid=""+request.getAttribute("id"); 52 Group group = manager.getGroup(Integer.parseInt(gid)); 53 checkPermission(request,OperationConstants.LIST_GROUP_USERS, group); 55 GroupUsersBean b=new GroupUsersBean(); 57 b.setId(group.getID()); 58 b.setName(group.getName()); 59 b.setDescription(group.getDescription()); 60 b.setNumAdmins(group.getAdministratorCount()); 61 b.setNumMembers(group.getMemberCount()) ; 62 63 User u=null; 64 UserBean ub=null; 65 for(Iterator it=group.administrators();it.hasNext();){ 66 u=(User)it.next(); 67 ub = new UserBean(); 68 ub.setId(u.getID()); 69 ub.setName(u.getName()); 70 ub.setUserName(u.getUsername()); 71 ub.setEmail(u.getEmail()); 72 b.addAdmin(ub); 73 } 74 for(Iterator it=group.members();it.hasNext();){ 75 u=(User)it.next(); 76 ub = new UserBean(); 77 ub.setId(u.getID()); 78 ub.setName(u.getName()); 79 ub.setUserName(u.getUsername()); 80 ub.setEmail(u.getEmail()); 81 b.addMember(ub); 82 } 83 request.setAttribute("gp",b); 84 request.setAttribute("isSystemAdmin",new Boolean (SecurityTools.isSystemAdmin(getAuthToken(request)))); 85 } 86 catch( NumberFormatException aee ) { 87 return mapping.findForward("cancel"); 88 } 89 catch( UnauthorizedException aee ) { 90 errors.add("general", new ActionError("listGroupUsers.unauthorized")); 91 } 92 93 94 } catch (Exception e) { 95 String eid=this.getClass().getName()+"_"+System.currentTimeMillis(); 96 log.error("eid:"+eid+"\nsessionID" +request.getSession().getId(),e) ; 97 errors.add("general", new ActionError("error.general","erreur id:"+eid)); 98 } 99 100 if (!errors.isEmpty()) { 101 saveErrors(request, errors); 102 return mapping.findForward("cancel"); 103 } 104 105 return mapping.findForward("view"); 106 } 107 108 } | Popular Tags |