Add infrastructure to allow freemarker controllers to block access to pages if user is not logged in.
This commit is contained in:
parent
0028509f63
commit
e7e5cefb29
3 changed files with 20 additions and 27 deletions
|
@ -193,7 +193,7 @@ public class EntityController extends VitroHttpServlet {
|
|||
if( view == null){
|
||||
if (customView == null) {
|
||||
view = default_jsp;
|
||||
vreq.setAttribute("bodyJsp","/"+Controllers.ENTITY_JSP);
|
||||
vreq.setAttribute("bodyJsp", Controllers.ENTITY_JSP);
|
||||
log.debug("no custom view and no view parameter in request for rendering "+indiv.getName());
|
||||
} else {
|
||||
view = default_jsp;
|
||||
|
|
|
@ -34,7 +34,6 @@ import edu.cornell.mannlib.vitro.webapp.utils.StringUtils;
|
|||
import edu.cornell.mannlib.vitro.webapp.web.BreadCrumbsUtil;
|
||||
import edu.cornell.mannlib.vitro.webapp.web.ContentType;
|
||||
import edu.cornell.mannlib.vitro.webapp.web.PortalWebUtil;
|
||||
import edu.cornell.mannlib.vitro.webapp.web.templatemodels.BaseTemplateModel;
|
||||
import edu.cornell.mannlib.vitro.webapp.web.templatemodels.files.Scripts;
|
||||
import edu.cornell.mannlib.vitro.webapp.web.templatemodels.files.Stylesheets;
|
||||
import edu.cornell.mannlib.vitro.webapp.web.templatemodels.menu.TabMenu;
|
||||
|
@ -43,6 +42,7 @@ import freemarker.cache.FileTemplateLoader;
|
|||
import freemarker.cache.MultiTemplateLoader;
|
||||
import freemarker.cache.TemplateLoader;
|
||||
import freemarker.ext.beans.BeansWrapper;
|
||||
import freemarker.ext.servlet.AllHttpScopesHashModel;
|
||||
import freemarker.template.Configuration;
|
||||
import freemarker.template.DefaultObjectWrapper;
|
||||
import freemarker.template.TemplateException;
|
||||
|
@ -77,6 +77,10 @@ public class FreemarkerHttpServlet extends VitroHttpServlet {
|
|||
public void doGet( HttpServletRequest request, HttpServletResponse response )
|
||||
throws IOException, ServletException {
|
||||
|
||||
if (requiresLogin() && !checkLoginStatus(request, response)) {
|
||||
return;
|
||||
}
|
||||
|
||||
super.doGet(request,response);
|
||||
|
||||
try {
|
||||
|
@ -200,6 +204,12 @@ public class FreemarkerHttpServlet extends VitroHttpServlet {
|
|||
|
||||
}
|
||||
|
||||
protected boolean requiresLogin() {
|
||||
// By default, user does not need to be logged in to view pages.
|
||||
// Subclasses that require login to process their page will override to return true.
|
||||
return false;
|
||||
}
|
||||
|
||||
// Subclasses will override
|
||||
protected ResponseValues processRequest(VitroRequest vreq) {
|
||||
return null;
|
||||
|
@ -266,6 +276,8 @@ public class FreemarkerHttpServlet extends VitroHttpServlet {
|
|||
|
||||
// root is the map used to create the page shell - header, footer, menus, etc.
|
||||
Map<String, Object> root = new HashMap<String, Object>(sharedVariables);
|
||||
//AllHttpScopesHashModel root = new AllHttpScopesHashModel(null, null, vreq);
|
||||
|
||||
root.putAll(getPageTemplateValues(vreq));
|
||||
// Tell the template and any directives it uses that we're processing a page template.
|
||||
root.put("templateType", "page");
|
||||
|
@ -589,11 +601,6 @@ public class FreemarkerHttpServlet extends VitroHttpServlet {
|
|||
}
|
||||
|
||||
protected static interface ResponseValues {
|
||||
// enum ResponseType {
|
||||
// TEMPLATE, REDIRECT, FORWARD, EXCEPTION
|
||||
// }
|
||||
//
|
||||
// ResponseType getType();
|
||||
|
||||
String getTemplateName();
|
||||
|
||||
|
@ -676,11 +683,6 @@ public class FreemarkerHttpServlet extends VitroHttpServlet {
|
|||
return this;
|
||||
}
|
||||
|
||||
// @Override
|
||||
// public ResponseType getType() {
|
||||
// return ResponseType.TEMPLATE;
|
||||
// }
|
||||
|
||||
@Override
|
||||
public Map<String, Object> getMap() {
|
||||
return Collections.unmodifiableMap(this.map);
|
||||
|
@ -729,11 +731,6 @@ public class FreemarkerHttpServlet extends VitroHttpServlet {
|
|||
this.redirectUrl = redirectUrl;
|
||||
}
|
||||
|
||||
// @Override
|
||||
// public ResponseType getType() {
|
||||
// return ResponseType.REDIRECT;
|
||||
// }
|
||||
|
||||
@Override
|
||||
public String getRedirectUrl() {
|
||||
return this.redirectUrl;
|
||||
|
@ -782,11 +779,6 @@ public class FreemarkerHttpServlet extends VitroHttpServlet {
|
|||
this.forwardUrl = forwardUrl;
|
||||
}
|
||||
|
||||
// @Override
|
||||
// public ResponseType getType() {
|
||||
// return ResponseType.FORWARD;
|
||||
// }
|
||||
|
||||
@Override
|
||||
public String getForwardUrl() {
|
||||
return this.forwardUrl;
|
||||
|
@ -857,11 +849,6 @@ public class FreemarkerHttpServlet extends VitroHttpServlet {
|
|||
this.cause = cause;
|
||||
}
|
||||
|
||||
// @Override
|
||||
// public ResponseType getType() {
|
||||
// return ResponseType.EXCEPTION;
|
||||
// }
|
||||
|
||||
@Override
|
||||
public Throwable getException() {
|
||||
return cause;
|
||||
|
|
|
@ -34,6 +34,12 @@ public class SiteAdminController extends FreemarkerHttpServlet {
|
|||
return siteName + " Site Administration";
|
||||
}
|
||||
|
||||
// @Override
|
||||
// protected boolean requiresLogin() {
|
||||
// // User must be logged in to view this page.
|
||||
// return true;
|
||||
// }
|
||||
|
||||
@Override
|
||||
protected ResponseValues processRequest(VitroRequest vreq) {
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue