KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > roller > presentation > tags > menu > BaseRollerMenu


1 package org.roller.presentation.tags.menu;
2
3 import java.util.ArrayList JavaDoc;
4 import java.util.Arrays JavaDoc;
5 import java.util.Iterator JavaDoc;
6 import java.util.List JavaDoc;
7
8 import javax.servlet.http.HttpServletRequest JavaDoc;
9
10 import org.roller.RollerException;
11 import org.roller.config.RollerConfig;
12 import org.roller.presentation.RollerRequest;
13 import org.roller.util.Utilities;
14
15 /**
16  * Base class for Roller menu objects.
17  * @author Dave Johnson
18  */

19 public abstract class BaseRollerMenu
20 {
21     protected String JavaDoc mName = null;
22     protected String JavaDoc mEnabledProperty = null;
23     protected String JavaDoc mDisabledProperty = null;
24     protected List JavaDoc mRoles = new ArrayList JavaDoc();
25     
26     public BaseRollerMenu() {}
27     
28     public BaseRollerMenu(String JavaDoc name) { mName = name; }
29     
30     /** Name of menu */
31     public void setName( String JavaDoc v ) { mName = v; }
32
33     /** Name of menu */
34     public String JavaDoc getName() { return mName; }
35     
36     /** Roles allowed to use menu, comma separated */
37     public void setRoles( String JavaDoc roles )
38     {
39         mRoles = Arrays.asList(Utilities.stringToStringArray(roles,","));
40     }
41     
42     /** Name of property that enables menu (or null if always enabled) */
43     public void setEnabledProperty(String JavaDoc enabledProperty)
44     {
45         mEnabledProperty = enabledProperty;
46     }
47
48     /** Name of property that disable menu (or null if always enabled) */
49     public void setDisabledProperty(String JavaDoc disabledProperty)
50     {
51         mDisabledProperty = disabledProperty;
52     }
53     
54     /** Determine if menu should be shown to use of specified request */
55     public boolean isPermitted(HttpServletRequest JavaDoc req) throws RollerException
56     {
57         if (mEnabledProperty != null)
58         {
59             String JavaDoc enabledProp = RollerConfig.getProperty(mEnabledProperty);
60             if (enabledProp != null && enabledProp.equalsIgnoreCase("false"))
61             {
62                 return false;
63             }
64         }
65         if (mDisabledProperty != null)
66         {
67             String JavaDoc disabledProp = RollerConfig.getProperty(mDisabledProperty);
68             if (disabledProp != null && disabledProp.equalsIgnoreCase("true"))
69             {
70                 return false;
71             }
72         }
73         if (mRoles != null && mRoles.size() > 0)
74         {
75             Iterator JavaDoc roles = mRoles.iterator();
76             while (roles.hasNext())
77             {
78                 RollerRequest rreq = RollerRequest.getRollerRequest(req);
79                 String JavaDoc role = (String JavaDoc)roles.next();
80                 if (req.isUserInRole(role))
81                 {
82                     return true;
83                 }
84                 else if (role.equals("admin") && rreq.isAdminUser())
85                 {
86                     return true;
87                 }
88             }
89             return false;
90         }
91         return true;
92     }
93 }
94
Popular Tags