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