All Downloads are FREE. Search and download functionalities are using the official Maven repository.

base.jee.servlet.ResourceServlet 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 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;
import base.text.StringHelper;

/**
 * Display and allow updating all current system configuration settings.
 */
public class ResourceServlet extends BaseServlet {

	private static final long serialVersionUID = 1L;

	public ResourceServlet(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.");
		}

		Template template = jee.getTemplateManager().getTemplate(request.getParameter("template"));
		Resource resource = template.getResource(request.getParameter("name"));

		String error = null;
		String info = 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().upsertTemplateResource(u, template.getName(), resource.getName(), request.getParameter("content").getBytes("UTF-8"), false);
			template.defineResource(resource.getName(), (request.getParameter("content")).getBytes("UTF-8"), resource.isBinary());
			response.setHeader("Location", settings.get("base.url", "") + "/resource?template=" + StringHelper.urlEscape(template.getName()) + "&name=" + StringHelper.urlEscape(resource.getName()) + "&saved=");
			response.setStatus(302);
			return;
		}

		if(request.getParameter("saved") != null) {
			info = "

Saved changes to this resource.

"; } ST page = jee.getPage(u, "resource"); page.add("t", template); page.add("info", info); page.add("content", new String(resource.getData(), "UTF-8")); page.add("template", template.getName()); page.add("name", resource.getName()); page.add("error", error); page.add("breadcrumbs", new Breadcrumb("Templates", "/templates")); page.add("breadcrumbs", new Breadcrumb(template.getName(), "/template?name=" + StringHelper.urlEscape(template.getName()))); page.add("breadcrumbs", new Breadcrumb(resource.getName(), null)); page.add("auth", u.getFormAuthToken()); response.getWriter().write(page.render()); } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy