/* * Created on Dec 29, 2004 */ package com.openedit.modules; import java.io.File; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import org.openedit.data.SearcherManager; import org.springframework.beans.BeansException; import org.springframework.beans.factory.BeanFactory; import org.springframework.beans.factory.BeanFactoryAware; import com.openedit.ModuleManager; import com.openedit.Secured; import com.openedit.WebPageRequest; import com.openedit.page.manage.PageManager; import com.openedit.users.User; import com.openedit.users.UserManager; /** * @author Matthew Avery, mavery@einnovation.com */ public abstract class BaseModule implements BeanFactoryAware, Secured { protected BeanFactory fieldBeanFactory; protected List fieldPermissions; protected List fieldRestrictedMethods; public PageManager getPageManager() { return (PageManager)getBeanFactory().getBean( "pageManager" ); } // public UserManager getUserManager(WebPageRequest inReq) // { // String catalogid = inReq.findValue("catalogid"); // // return (UserManager) getModuleManager().getBean(catalogid, "userManager"); // // } protected SearcherManager getSearcherManager() { return (SearcherManager)getBeanFactory().getBean( "searcherManager" ); } public BeanFactory getBeanFactory() { return fieldBeanFactory; } public void setBeanFactory( BeanFactory beanFactory ) throws BeansException { fieldBeanFactory = beanFactory; } public ModuleManager getModuleManager() { return (ModuleManager) getBeanFactory().getBean( "moduleManager" ); } public BaseModule getModule(String inName) { return getModuleManager().getModule( inName ); } public File getRoot() { return (File) getBeanFactory().getBean( "root" ); } /** * */ public void shutdown() { } public List getPermissions() { return fieldPermissions; } public void setPermissions(List inPermissions) { fieldPermissions = inPermissions; } public void setPermission(String inPermission) { fieldPermissions = new ArrayList(); fieldPermissions.add(inPermission); } public void setRestrictedMethods(List inMethods) { fieldRestrictedMethods = inMethods; } public boolean canRun(WebPageRequest inReq, String inMethodName) { if (fieldPermissions == null) { return true; } if (getRestrictedMethods() == null || getRestrictedMethods().contains(inMethodName)) { User user = inReq.getUser(); if (user == null) { return false; } for (Iterator iter = getPermissions().iterator(); iter.hasNext();) { String permission = (String) iter.next(); if (!user.hasPermission(permission)) { return false; } } } return true; } public List getRestrictedMethods() { return fieldRestrictedMethods; } /** * * @deprecated see WebPageRequest.findValue * @param inName * @param inRequest * @return */ protected String findValue(String inName, WebPageRequest inRequest) { return inRequest.findValue(inName); } }