001: /*
002: * Created on Dec 29, 2004
003: */
004: package com.openedit.modules;
005:
006: import java.io.File;
007: import java.util.ArrayList;
008: import java.util.Iterator;
009: import java.util.List;
010:
011: import org.springframework.beans.factory.BeanFactory;
012: import org.springframework.beans.factory.BeanFactoryAware;
013:
014: import com.openedit.ModuleManager;
015: import com.openedit.Secured;
016: import com.openedit.WebPageRequest;
017: import com.openedit.page.PageAction;
018: import com.openedit.page.manage.PageManager;
019: import com.openedit.users.User;
020: import com.openedit.users.UserManager;
021:
022: /**
023: * @author Matthew Avery, mavery@einnovation.com
024: */
025: public abstract class BaseModule implements BeanFactoryAware, Secured {
026: protected BeanFactory fieldBeanFactory;
027: protected List fieldPermissions;
028: protected List fieldRestrictedMethods;
029:
030: public PageManager getPageManager() {
031: return (PageManager) getBeanFactory().getBean("pageManager");
032: }
033:
034: public UserManager getUserManager() {
035: return (UserManager) getBeanFactory().getBean("userManager");
036: }
037:
038: public BeanFactory getBeanFactory() {
039: return fieldBeanFactory;
040: }
041:
042: public void setBeanFactory(BeanFactory beanFactory) {
043: fieldBeanFactory = beanFactory;
044: }
045:
046: public ModuleManager getModuleManager() {
047: return (ModuleManager) getBeanFactory()
048: .getBean("moduleManager");
049: }
050:
051: public BaseModule getModule(String inName) {
052: return getModuleManager().getModule(inName);
053: }
054:
055: public File getRoot() {
056: return (File) getBeanFactory().getBean("root");
057: }
058:
059: /**
060: *
061: */
062: public void shutdown() {
063: }
064:
065: public List getPermissions() {
066: return fieldPermissions;
067: }
068:
069: public void setPermissions(List inPermissions) {
070: fieldPermissions = inPermissions;
071: }
072:
073: public void setPermission(String inPermission) {
074: fieldPermissions = new ArrayList();
075: fieldPermissions.add(inPermission);
076: }
077:
078: public void setRestrictedMethods(List inMethods) {
079: fieldRestrictedMethods = inMethods;
080: }
081:
082: public boolean canRun(WebPageRequest inReq, String inMethodName) {
083: if (fieldPermissions == null) {
084: return true;
085: }
086:
087: if (getRestrictedMethods() == null
088: || getRestrictedMethods().contains(inMethodName)) {
089: User user = inReq.getUser();
090: if (user == null) {
091: return false;
092: }
093:
094: for (Iterator iter = getPermissions().iterator(); iter
095: .hasNext();) {
096: String permission = (String) iter.next();
097: if (!user.hasPermission(permission)) {
098: return false;
099: }
100: }
101: }
102:
103: return true;
104: }
105:
106: public List getRestrictedMethods() {
107: return fieldRestrictedMethods;
108: }
109:
110: /**
111: *
112: * @deprecated see WebPageRequest.findValue
113: * @param inName
114: * @param inRequest
115: * @return
116: */
117: protected String findValue(String inName, WebPageRequest inRequest) {
118: return inRequest.findValue(inName);
119: }
120: }
|