KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > nemesis > forum > webapp > admin > action > ListForumPermissionsAction


1 package org.nemesis.forum.webapp.admin.action;
2
3 import javax.servlet.http.HttpServletRequest JavaDoc;
4 import javax.servlet.http.HttpServletResponse JavaDoc;
5
6 import org.apache.commons.logging.Log;
7 import org.apache.commons.logging.LogFactory;
8 import org.apache.struts.action.ActionError;
9 import org.apache.struts.action.ActionErrors;
10 import org.apache.struts.action.ActionForm;
11 import org.apache.struts.action.ActionForward;
12 import org.apache.struts.action.ActionMapping;
13 import org.apache.struts.action.ActionMessage;
14 import org.apache.struts.util.MessageResources;
15 import org.nemesis.forum.Forum;
16 import org.nemesis.forum.ForumFactory;
17 import org.nemesis.forum.Group;
18 import org.nemesis.forum.ProfileManager;
19 import org.nemesis.forum.User;
20 import org.nemesis.forum.config.Constants;
21 import org.nemesis.forum.exception.NotFoundException;
22 import org.nemesis.forum.util.SecurityTools;
23 import org.nemesis.forum.webapp.admin.bean.ForumPermissionsBean;
24 import org.nemesis.forum.webapp.admin.bean.GroupBean;
25 import org.nemesis.forum.webapp.admin.bean.UserBean;
26 import org.nemesis.forum.webapp.exception.UnauthorizedException;
27
28 public class ListForumPermissionsAction extends BaseAction {
29
30     static protected Log log = LogFactory.getLog(ListForumPermissionsAction.class);
31
32     static private final int[] perms = { Constants.READ, Constants.CREATE_THREAD, Constants.CREATE_MESSAGE, Constants.MODERATOR };
33
34     public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest JavaDoc request, HttpServletResponse JavaDoc response) throws Exception JavaDoc {
35
36         //check logon
37
checkUser(request);
38         MessageResources messages=getResources(request);
39
40         ActionErrors errors = new ActionErrors();
41         try {
42             ForumFactory forumFactory = ForumFactory.getInstance(getAuthToken(request));
43             ProfileManager manager = forumFactory.getProfileManager();
44             
45             
46             Forum forum = forumFactory.getForum(Integer.parseInt(request.getParameter("id")));
47
48             //check permission
49
checkPermission(request, OperationConstants.LIST_FORUM_PERMISSION, forum);
50             
51             
52             ForumPermissionsBean fb = new ForumPermissionsBean();
53             fb.setId(forum.getID());
54             fb.setName(forum.getName());
55             fb.setDescription(forum.getDescription());
56
57             int[] ids;
58             UserBean ub = null;
59             GroupBean gb = null;
60             User user = null;
61             Group group = null;
62
63             ids = forum.usersWithPermission(Constants.READ);
64             for (int i = 0; i < ids.length; i++) {
65                 ub = new UserBean();
66                 user = manager.getUser(ids[i]);
67                 ub.setId(user.getID());
68                 if( user.getID() == -1 )ub.setUserName(messages.getMessage(getLocale(request),"user.anonymous"));
69                 else if( user.getID() == 0 )ub.setUserName(messages.getMessage(getLocale(request),"user.registered"));
70                 else
71                 ub.setUserName(user.getUsername());
72                 fb.addUsersWithReadPerm(ub);
73             }
74
75             ids = forum.usersWithPermission(Constants.CREATE_THREAD);
76             for (int i = 0; i < ids.length; i++) {
77                 ub = new UserBean();
78                 user = manager.getUser(ids[i]);
79                 ub.setId(user.getID());
80                 if( user.getID() == -1 )ub.setUserName(messages.getMessage(getLocale(request),"user.anonymous"));
81                 else if( user.getID() == 0 )ub.setUserName(messages.getMessage(getLocale(request),"user.registered"));
82                 else
83                 ub.setUserName(user.getUsername());
84                 fb.addUsersWithThreadPerm(ub);
85             }
86
87             ids = forum.usersWithPermission(Constants.CREATE_MESSAGE);
88             for (int i = 0; i < ids.length; i++) {
89                 ub = new UserBean();
90                 user = manager.getUser(ids[i]);
91                 ub.setId(user.getID());
92                 if( user.getID() == -1 )ub.setUserName(messages.getMessage(getLocale(request),"user.anonymous"));
93                 else if( user.getID() == 0 )ub.setUserName(messages.getMessage(getLocale(request),"user.registered"));
94                 else
95                 ub.setUserName(user.getUsername());
96                 fb.addUsersWithMessagePerm(ub);
97             }
98             ids = forum.usersWithPermission(Constants.MODERATOR);
99             for (int i = 0; i < ids.length; i++) {
100                 ub = new UserBean();
101                 user = manager.getUser(ids[i]);
102                 ub.setId(user.getID());
103                 if( user.getID() == -1 )ub.setUserName(messages.getMessage(getLocale(request),"user.anonymous"));
104                 else if( user.getID() == 0 )ub.setUserName(messages.getMessage(getLocale(request),"user.registered"));
105                 else
106                 ub.setUserName(user.getUsername());
107                 fb.addUsersWithModeratorPerm(ub);
108             }
109             ids = forum.usersWithPermission(Constants.FORUM_ADMIN);
110                 for (int i = 0; i < ids.length; i++) {
111                     ub = new UserBean();
112                     user = manager.getUser(ids[i]);
113                     ub.setId(user.getID());
114                     if( user.getID() == -1 )ub.setUserName(messages.getMessage(getLocale(request),"user.anonymous"));
115                     else if( user.getID() == 0 )ub.setUserName(messages.getMessage(getLocale(request),"user.registered"));
116                     else
117                     ub.setUserName(user.getUsername());
118                     fb.addUsersWithAdminPerm(ub);
119             }
120             
121             
122             
123             
124             
125             ids = forum.groupsWithPermission(Constants.READ);
126             for (int i = 0; i < ids.length; i++) {
127                 gb = new GroupBean();
128                 group = manager.getGroup(ids[i]);
129                 gb.setId(group.getID());
130                 gb.setName(group.getName());
131                 fb.addGroupsWithReadPerm(gb);
132             }
133
134             ids = forum.groupsWithPermission(Constants.CREATE_THREAD);
135             for (int i = 0; i < ids.length; i++) {
136                 gb = new GroupBean();
137                 group = manager.getGroup(ids[i]);
138                 gb.setId(group.getID());
139                 gb.setName(group.getName());
140                 fb.addGroupsWithThreadPerm(gb);
141             }
142
143             ids = forum.groupsWithPermission(Constants.CREATE_MESSAGE);
144             for (int i = 0; i < ids.length; i++) {
145                 gb = new GroupBean();
146                 group = manager.getGroup(ids[i]);
147                 gb.setId(group.getID());
148                 gb.setName(group.getName());
149                 fb.addGroupsWithMessagePerm(gb);
150             }
151             ids = forum.groupsWithPermission(Constants.MODERATOR);
152             for (int i = 0; i < ids.length; i++) {
153                 gb = new GroupBean();
154                 group = manager.getGroup(ids[i]);
155                 gb.setId(group.getID());
156                 gb.setName(group.getName());
157                 fb.addGroupsWithModeratorPerm(gb);
158             }
159             ids = forum.groupsWithPermission(Constants.FORUM_ADMIN);
160                 for (int i = 0; i < ids.length; i++) {
161                     gb = new GroupBean();
162                     group = manager.getGroup(ids[i]);
163                     gb.setId(group.getID());
164                     gb.setName(group.getName());
165                     fb.addGroupsWithAdminPerm(gb);
166             }
167             
168             request.setAttribute("fb",fb);
169             request.setAttribute("isSystemAdmin",new Boolean JavaDoc(SecurityTools.isSystemAdmin(getAuthToken(request))));
170
171         } catch (NotFoundException fnfe) {
172             log.error("",fnfe);
173             
174         } catch (UnauthorizedException ue) {
175             errors.add("general", new ActionError("listForumPermissions.unauthorized"));
176             saveErrors(request, errors);
177             return mapping.findForward("cancel");
178             
179         } catch (Exception JavaDoc e) {
180             String JavaDoc eid = this.getClass().getName() + "_" + System.currentTimeMillis();
181             log.error("eid:" + eid + "\nsessionID" + request.getSession().getId(), e);
182             errors.add("general", new ActionMessage("error.general", "error id:" + eid));
183         }
184
185         if (!errors.isEmpty()) {
186             saveErrors(request, errors);
187         }
188
189         return mapping.findForward("view");
190     }
191
192 }
Popular Tags