KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > openedit > modules > BaseModule


1 /*
2  * Created on Dec 29, 2004
3  */

4 package com.openedit.modules;
5
6 import java.io.File JavaDoc;
7 import java.util.ArrayList JavaDoc;
8 import java.util.Iterator JavaDoc;
9 import java.util.List JavaDoc;
10
11 import org.springframework.beans.factory.BeanFactory;
12 import org.springframework.beans.factory.BeanFactoryAware;
13
14 import com.openedit.ModuleManager;
15 import com.openedit.Secured;
16 import com.openedit.WebPageRequest;
17 import com.openedit.page.PageAction;
18 import com.openedit.page.manage.PageManager;
19 import com.openedit.users.User;
20 import com.openedit.users.UserManager;
21
22 /**
23  * @author Matthew Avery, mavery@einnovation.com
24  */

25 public abstract class BaseModule implements BeanFactoryAware, Secured
26 {
27     protected BeanFactory fieldBeanFactory;
28     protected List JavaDoc fieldPermissions;
29     protected List JavaDoc fieldRestrictedMethods;
30     
31     public PageManager getPageManager()
32     {
33         return (PageManager)getBeanFactory().getBean( "pageManager" );
34     }
35
36     public UserManager getUserManager()
37     {
38         return (UserManager)getBeanFactory().getBean( "userManager" );
39     }
40
41     public BeanFactory getBeanFactory()
42     {
43         return fieldBeanFactory;
44     }
45     public void setBeanFactory( BeanFactory beanFactory )
46     {
47         fieldBeanFactory = beanFactory;
48     }
49     
50     public ModuleManager getModuleManager()
51     {
52         return (ModuleManager) getBeanFactory().getBean( "moduleManager" );
53     }
54     public BaseModule getModule(String JavaDoc inName)
55     {
56         return getModuleManager().getModule( inName );
57     }
58     
59     public File JavaDoc getRoot()
60     {
61         return (File JavaDoc) getBeanFactory().getBean( "root" );
62     }
63
64     /**
65      *
66      */

67     public void shutdown()
68     {
69     }
70
71     public List JavaDoc getPermissions()
72     {
73         return fieldPermissions;
74     }
75
76     public void setPermissions(List JavaDoc inPermissions)
77     {
78         fieldPermissions = inPermissions;
79     }
80     
81     public void setPermission(String JavaDoc inPermission)
82     {
83         fieldPermissions = new ArrayList JavaDoc();
84         fieldPermissions.add(inPermission);
85     }
86     
87     public void setRestrictedMethods(List JavaDoc inMethods)
88     {
89         fieldRestrictedMethods = inMethods;
90     }
91     
92     public boolean canRun(WebPageRequest inReq, String JavaDoc inMethodName)
93     {
94         if (fieldPermissions == null)
95         {
96             return true;
97         }
98         
99         if (getRestrictedMethods() == null || getRestrictedMethods().contains(inMethodName))
100         {
101             User user = inReq.getUser();
102             if (user == null)
103             {
104                 return false;
105             }
106             
107             for (Iterator JavaDoc iter = getPermissions().iterator(); iter.hasNext();)
108             {
109                 String JavaDoc permission = (String JavaDoc) iter.next();
110                 if (!user.hasPermission(permission))
111                 {
112                     return false;
113                 }
114             }
115         }
116         
117         return true;
118     }
119
120     public List JavaDoc getRestrictedMethods()
121     {
122         return fieldRestrictedMethods;
123     }
124
125     protected String JavaDoc findValue(String JavaDoc inName, WebPageRequest inRequest)
126     {
127         String JavaDoc name = null;
128         PageAction inAction = inRequest.getCurrentAction();
129         if( inAction != null && inAction.getConfig() != null)
130         {
131             name = inAction.getConfig().getChildValue( inName );
132         }
133         if( name == null)
134         {
135             name = inRequest.getPage().get(inName);
136         }
137         if( name == null)
138         {
139             name = inRequest.getRequestParameter(inName);
140         }
141         name = inRequest.getPage().getPageSettings().replaceProperty(name);
142         return name;
143     }
144 }
145
Popular Tags