Skip to content

Commit b262be5

Browse files
committed
Created ReportAuthMethodModel
1 parent a214876 commit b262be5

2 files changed

Lines changed: 33 additions & 0 deletions

File tree

api/src/main/java/edu/cornell/mannlib/vitro/webapp/freemarker/config/FreemarkerConfiguration.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.EditConfigurationConstants;
2626
import edu.cornell.mannlib.vitro.webapp.freemarker.loader.FreemarkerTemplateLoader;
2727
import edu.cornell.mannlib.vitro.webapp.i18n.freemarker.I18nMethodModel;
28+
import edu.cornell.mannlib.vitro.webapp.i18n.freemarker.ReportAuthMethodModel;
2829
import edu.cornell.mannlib.vitro.webapp.startup.StartupStatus;
2930
import edu.cornell.mannlib.vitro.webapp.utils.developer.DeveloperSettings;
3031
import edu.cornell.mannlib.vitro.webapp.utils.developer.Key;
@@ -273,6 +274,8 @@ private void addMethods(FreemarkerConfigurationImpl c) {
273274
c.setSharedVariable("placeholderImageUrl",
274275
new IndividualPlaceholderImageUrlMethod());
275276
c.setSharedVariable("i18n", new I18nMethodModel());
277+
c.setSharedVariable("isReportAuth", new ReportAuthMethodModel());
278+
276279
}
277280

278281
private Map<String, Object> getRevisionInfo(ServletContext ctx) {
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
/* $This file is distributed under the terms of the license in LICENSE$ */
2+
3+
package edu.cornell.mannlib.vitro.webapp.i18n.freemarker;
4+
5+
import static edu.cornell.mannlib.vitro.webapp.auth.attributes.AccessOperation.EXECUTE;
6+
import static edu.cornell.mannlib.vitro.webapp.auth.policy.PolicyHelper.isAuthorizedForActions;
7+
8+
import java.util.List;
9+
10+
import javax.servlet.http.HttpServletRequest;
11+
12+
import edu.cornell.mannlib.vitro.webapp.auth.objects.DataDistributorAccessObject;
13+
import freemarker.core.Environment;
14+
import freemarker.template.TemplateMethodModelEx;
15+
import freemarker.template.TemplateModelException;
16+
17+
public class ReportAuthMethodModel implements TemplateMethodModelEx {
18+
19+
@Override
20+
public Object exec(List args) throws TemplateModelException {
21+
if (args.isEmpty() || args.get(0) == null) {
22+
return false;
23+
}
24+
Environment env = Environment.getCurrentEnvironment();
25+
HttpServletRequest request = (HttpServletRequest) env.getCustomAttribute("request");
26+
String uri = args.get(0).toString();
27+
return isAuthorizedForActions(request, new DataDistributorAccessObject(uri), EXECUTE);
28+
}
29+
30+
}

0 commit comments

Comments
 (0)