base.jee.servlet.TemplateServlet Maven / Gradle / Ivy
/**
* Creative commons Attribution-NonCommercial license.
*
* http://creativecommons.org/licenses/by-nc/2.5/au/deed.en_GB
*
* NO WARRANTY IS GIVEN OR IMPLIED, USE AT YOUR OWN RISK.
*/
package base.jee.servlet;
import java.io.IOException;
import java.util.Collections;
import java.util.LinkedList;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.stringtemplate.v4.ST;
import base.jee.Breadcrumb;
import base.jee.JeeBase;
import base.jee.Constants;
import base.security.User;
import base.template.Resource;
import base.template.Template;
/**
* Display and allow updating all current system configuration settings.
*/
public class TemplateServlet extends BaseServlet {
private static final long serialVersionUID = 1L;
public TemplateServlet(JeeBase jee) throws IOException {
super(jee);
}
public void doGet(String token, User u, HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
if(!u.hasRole(Constants.TEMPLATE_MANAGE_ROLE)) {
throw new IllegalStateException("You do not have permission to manage templates.");
}
String error = null;
// Set header value
if(request.getParameter("name") != null && request.getParameter("content") != null) {
if(request.getParameter("a") == null || !request.getParameter("a").equals(u.getFormAuthToken())) {
throw new IllegalArgumentException("Invalid authentication token.");
}
jee.getAPI().upsertSetting(u, request.getParameter("name"), request.getParameter("value"));
response.setHeader("Location", settings.get("base.url", "") + "/template?s=added");
response.setStatus(302);
return;
}
Template template = jee.getTemplateManager().getTemplate(request.getParameter("name"));
List resources = new LinkedList<>();
for(Resource resource : template.getResources()) {
resources.add(resource);
}
Collections.sort(resources);
ST page = jee.getPage(u, "template");
page.add("t", template);
page.add("resources", resources);
page.add("isdefault", template.getName().equalsIgnoreCase("default"));
page.add("error", error);
page.add("breadcrumbs", new Breadcrumb("Templates", "/templates"));
page.add("breadcrumbs", new Breadcrumb(template.getName(), null));
page.add("auth", u.getFormAuthToken());
response.getWriter().write(page.render());
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy