KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > contineo > actions > admin > rules > ShowRulesAction


1 /*
2  * ShowRulesAction.java
3  *
4  * Created on 16. November 2003, 21:26
5  */

6
7 package org.contineo.actions.admin.rules;
8
9 import java.util.ArrayList JavaDoc;
10 import java.util.Collection JavaDoc;
11 import java.util.Iterator JavaDoc;
12
13 import javax.servlet.http.HttpServletRequest JavaDoc;
14 import javax.servlet.http.HttpServletResponse JavaDoc;
15 import javax.servlet.http.HttpSession JavaDoc;
16
17 import org.apache.log4j.Level;
18 import org.apache.log4j.Logger;
19
20 import org.apache.struts.action.Action;
21 import org.apache.struts.action.ActionForm;
22 import org.apache.struts.action.ActionForward;
23 import org.apache.struts.action.ActionMapping;
24
25 import org.contineo.admin.Group;
26 import org.contineo.admin.GroupRule;
27 import org.contineo.admin.MenuGroup;
28 import org.contineo.admin.dao.GroupDAO;
29 import org.contineo.admin.dao.MenuDAO;
30 import org.contineo.admin.dao.MenuGroupDAO;
31 import org.contineo.core.LoggingManager;
32 import org.contineo.core.SessionManagement;
33
34 /**
35  *
36  * @author Michael Scholz
37  */

38 public class ShowRulesAction extends Action {
39
40     /**
41      * @uml.property name="logger"
42      * @uml.associationEnd
43      */

44     private Logger logger;
45
46     
47     /** Creates a new instance of ShowRulesAction */
48     public ShowRulesAction() {
49         logger = LoggingManager.getLogger(this.getClass());
50     }
51
52     public ActionForward execute(ActionMapping mapping,
53                     ActionForm form, HttpServletRequest JavaDoc request,
54                     HttpServletResponse JavaDoc response) {
55         ActionForward actionForward = new ActionForward();
56         HttpSession JavaDoc session = request.getSession();
57         if (SessionManagement.isValid(session)) {
58             try {
59                 String JavaDoc menuid = request.getParameter("menuid");
60                 int id = Integer.parseInt(menuid);
61                 MenuGroupDAO mgdao = new MenuGroupDAO();
62                 GroupDAO gdao = new GroupDAO();
63                 MenuDAO mdao = new MenuDAO();
64                 String JavaDoc username = (String JavaDoc)session.getAttribute("authuser");
65                 if (mdao.isWriteEnable(id, username)) {
66                     Collection JavaDoc groups = gdao.findAll();
67                     Collection JavaDoc<GroupRule> rules = new ArrayList JavaDoc<GroupRule>();
68                     Iterator JavaDoc iter = groups.iterator();
69                     while (iter.hasNext()) {
70                         Group g = (Group)iter.next();
71                         GroupRule gr = new GroupRule();
72                         gr.setGroupName(g.getGroupName());
73                         
74                         // special handling for admin group, it has always write/read
75
if (g.getGroupName().equals("admin")) {
76                             gr.setEnabled(false);
77                             gr.setRead(true);
78                             gr.setWrite(true);
79                         } else {
80                             gr.setEnabled(true);
81                             MenuGroup mg = mgdao.findByMenuIdGroupName(id, g.getGroupName());
82                             if (mg == null || !mg.getGroupName().equals(g.getGroupName())) {
83                                 gr.setRead(false);
84                                 gr.setWrite(false);
85                             } else {
86                                 gr.setRead(true);
87                                 if (mg.getWriteEnable() == 1)
88                                     gr.setWrite(true);
89                                 else
90                                     gr.setWrite(false);
91                             }
92                         }
93                         rules.add(gr);
94                     }
95                     request.setAttribute("rules", rules);
96                     request.setAttribute("menuid", menuid);
97                     actionForward = mapping.findForward("showrules");
98                 } else
99                     actionForward = mapping.findForward("noaccess");
100             } catch (Exception JavaDoc e) {
101                 if (logger.isEnabledFor(Level.ERROR))
102                     logger.error(e.getMessage());
103                 actionForward = mapping.findForward("error");
104             }
105         } else
106             actionForward = mapping.findForward("invalid");
107         return actionForward;
108     }
109 }
110
Popular Tags