Fisheye: Tag bfe9a3f1fab72deab8749ecce2f49ece2cee2db3 refers to a dead (removed) revision in file `lams_admin/src/java/org/lamsfoundation/lams/admin/web/CacheAction.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag bfe9a3f1fab72deab8749ecce2f49ece2cee2db3 refers to a dead (removed) revision in file `lams_admin/src/java/org/lamsfoundation/lams/admin/web/CacheActionForm.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag bfe9a3f1fab72deab8749ecce2f49ece2cee2db3 refers to a dead (removed) revision in file `lams_admin/src/java/org/lamsfoundation/lams/admin/web/SysadminAction.java'. Fisheye: No comparison available. Pass `N' to diff? Index: lams_admin/src/java/org/lamsfoundation/lams/sysadmin/web/CacheAction.java =================================================================== diff -u --- lams_admin/src/java/org/lamsfoundation/lams/sysadmin/web/CacheAction.java (revision 0) +++ lams_admin/src/java/org/lamsfoundation/lams/sysadmin/web/CacheAction.java (revision bfe9a3f1fab72deab8749ecce2f49ece2cee2db3) @@ -0,0 +1,131 @@ +package org.lamsfoundation.lams.sysadmin.web; + +import java.io.IOException; +import java.util.Map; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.log4j.Logger; +import org.apache.struts.action.ActionForm; +import org.apache.struts.action.ActionForward; +import org.apache.struts.action.ActionMapping; +import org.lamsfoundation.lams.cache.CacheManager; +import org.lamsfoundation.lams.util.WebUtil; +import org.lamsfoundation.lams.web.action.LamsDispatchAction; +import org.lamsfoundation.lams.web.util.HttpSessionManager; +import org.springframework.web.context.WebApplicationContext; +import org.springframework.web.context.support.WebApplicationContextUtils; + + +/** + * this is an action where all lams client environments launch. + * initial configuration of the individual environment setting is done here. + * + * @struts:action name="CacheActionForm" + * path="/sysadmin/cache" + * parameter="method" + * validate="false" + * @struts:action-forward name="cache" path=".cache" + * + */ +public class CacheAction extends LamsDispatchAction { + + public static final String CACHE_ENTRIES = "cache"; + public static final String NODE_KEY = "node"; + + private static Logger log = Logger.getLogger(CacheAction.class); + private static WebApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(HttpSessionManager.getInstance().getServletContext()); + private static CacheManager manager = (CacheManager) ctx.getBean("cacheManager"); + //private static UserManagementService service = (UserManagementService) ctx.getBean("userManagementServiceTarget"); + + /* + private boolean isUserInRole(String login,int orgId, String roleName) + { + if (service.getUserOrganisationRole(login, new Integer(orgId),roleName)==null) + return false; + return true; + } */ + + /** + * request for sysadmin environment + */ + public ActionForward unspecified(ActionMapping mapping, ActionForm form, + HttpServletRequest req, HttpServletResponse res) + throws IOException, ServletException { + + try { + + log.debug("cache lookup"); + + // todo restrict access to admin only. Can't do at present as don't know orgID + log.error("CacheAction should be restricted to admin only. No check being done. Please implement."); + /*String login = req.getRemoteUser(); + int orgId = new Integer(req.getParameter("orgId")).intValue(); + + if ( isUserInRole(login,orgId,Role.ADMIN)) + { + log.debug("user is admin"); + Organisation org = service.getOrganisationById(new Integer(orgId)); + AdminPreparer.prepare(org,req,service); + return mapping.findForward("admin"); + } + else + { + log.error("User "+login+" tried to get cache admin screen but isn't admin in organisation: "+orgId); + return mapping.findForward("error"); + } */ + + Map items = manager.getCachedItems(); + req.setAttribute(CACHE_ENTRIES, items); + return mapping.findForward("cache"); + + } catch (Exception e) { + e.printStackTrace(); + return mapping.findForward("error"); + } + } + + /** + * request for sysadmin environment + */ + public ActionForward remove(ActionMapping mapping, ActionForm form, + HttpServletRequest req, HttpServletResponse res) + throws IOException, ServletException { + + try { + + log.debug("remove"); + + // todo restrict access to admin only. Can't do at present as don't know orgID + log.error("CacheAction should be restricted to admin only. No check being done. Please implement."); + /*String login = req.getRemoteUser(); + int orgId = new Integer(req.getParameter("orgId")).intValue(); + + if ( isUserInRole(login,orgId,Role.ADMIN)) + { + log.debug("user is admin"); + Organisation org = service.getOrganisationById(new Integer(orgId)); + AdminPreparer.prepare(org,req,service); + return mapping.findForward("admin"); + } + else + { + log.error("User "+login+" tried to get cache admin screen but isn't admin in organisation: "+orgId); + return mapping.findForward("error"); + } */ + + String node = WebUtil.readStrParam(req, NODE_KEY, false); + manager.clearCache(node); + + Map items = manager.getCachedItems(); + req.setAttribute(CACHE_ENTRIES, items); + return mapping.findForward("cache"); + + } catch (Exception e) { + e.printStackTrace(); + return mapping.findForward("error"); + } + } +} \ No newline at end of file Index: lams_admin/src/java/org/lamsfoundation/lams/sysadmin/web/CacheActionForm.java =================================================================== diff -u --- lams_admin/src/java/org/lamsfoundation/lams/sysadmin/web/CacheActionForm.java (revision 0) +++ lams_admin/src/java/org/lamsfoundation/lams/sysadmin/web/CacheActionForm.java (revision bfe9a3f1fab72deab8749ecce2f49ece2cee2db3) @@ -0,0 +1,43 @@ +package org.lamsfoundation.lams.sysadmin.web; + +import javax.servlet.http.HttpServletRequest; + +import org.apache.struts.action.ActionForm; +import org.apache.struts.action.ActionMapping; + +/** + * @author fmalikoff + * + * @struts:form name="CacheActionForm" + */ +public class CacheActionForm extends ActionForm { + + public static final String formName = "CacheActionForm"; // must match name in @struts:action section above + + private String node; + + public CacheActionForm() { + } + + + /** + * Reset all properties to their default values. + * + * @param mapping The mapping used to select this instance + * @param request The servlet request we are processing + */ + public void reset(ActionMapping mapping, HttpServletRequest request) { + setNode(null); + } + + + public String getNode() { + return node; + } + + + public void setNode(String node) { + this.node = node; + } + +} \ No newline at end of file Index: lams_admin/web/WEB-INF/struts/struts-config.xml =================================================================== diff -u -ra037ad028d8a31e78d79fdb75c5bbbe0db3bb536 -rbfe9a3f1fab72deab8749ecce2f49ece2cee2db3 --- lams_admin/web/WEB-INF/struts/struts-config.xml (.../struts-config.xml) (revision a037ad028d8a31e78d79fdb75c5bbbe0db3bb536) +++ lams_admin/web/WEB-INF/struts/struts-config.xml (.../struts-config.xml) (revision bfe9a3f1fab72deab8749ecce2f49ece2cee2db3) @@ -18,14 +18,14 @@ type="org.lamsfoundation.lams.admin.web.OrganisationActionForm" /> + - @@ -94,22 +94,19 @@ /> - - - - System Administration
    -
  • +