001
014
015 package com.liferay.portal.template;
016
017 import com.liferay.portal.kernel.security.pacl.NotPrivileged;
018 import com.liferay.portal.kernel.template.Template;
019 import com.liferay.portal.kernel.template.TemplateManager;
020 import com.liferay.portal.kernel.template.TemplateResource;
021
022 import java.security.AccessController;
023 import java.security.PrivilegedAction;
024
025 import java.util.Map;
026
027
030 public abstract class BaseTemplateManager implements TemplateManager {
031
032 @NotPrivileged
033 @Override
034 public Template getTemplate(
035 TemplateResource templateResource, boolean restricted) {
036
037 return getTemplate(templateResource, null, restricted);
038 }
039
040 @NotPrivileged
041 @Override
042 public Template getTemplate(
043 TemplateResource templateResource,
044 TemplateResource errorTemplateResource, boolean restricted) {
045
046 TemplateContextHelper templateContextHelper =
047 getTemplateContextHelper();
048
049 Map<String, Object> helperUtilities =
050 templateContextHelper.getHelperUtilities(restricted);
051
052 return AccessController.doPrivileged(
053 new DoGetTemplatePrivilegedAction(
054 templateResource, errorTemplateResource, restricted,
055 helperUtilities));
056 }
057
058 protected abstract Template doGetTemplate(
059 TemplateResource templateResource,
060 TemplateResource errorTemplateResource, boolean restricted,
061 Map<String, Object> helperUtilities);
062
063 protected abstract TemplateContextHelper getTemplateContextHelper();
064
065 private class DoGetTemplatePrivilegedAction
066 implements PrivilegedAction<Template> {
067
068 public DoGetTemplatePrivilegedAction(
069 TemplateResource templateResource,
070 TemplateResource errorTemplateResource, boolean restricted,
071 Map<String, Object> helperUtilities) {
072
073 _templateResource = templateResource;
074 _errorTemplateResource = errorTemplateResource;
075 _restricted = restricted;
076 _helperUtilities = helperUtilities;
077 }
078
079 @Override
080 public Template run() {
081 return doGetTemplate(
082 _templateResource, _errorTemplateResource, _restricted,
083 _helperUtilities);
084 }
085
086 private TemplateResource _errorTemplateResource;
087 private Map<String, Object> _helperUtilities;
088 private boolean _restricted;
089 private TemplateResource _templateResource;
090
091 }
092
093 }