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

base.jee.servlet.SuspendedAccountsServlet 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 base.jee.Breadcrumb;
import base.jee.Constants;
import base.jee.JeeBase;
import base.jee.api.model.Throttle;
import base.jee.api.sql.SearchPeople;
import base.security.PermissionException;
import base.security.User;
import base.text.StringHelper;
import org.stringtemplate.v4.ST;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;

/**
 * Display people search form and people search results.
 */
public class SuspendedAccountsServlet extends BaseServlet {

	private static final long serialVersionUID = 1L;

	public SuspendedAccountsServlet(JeeBase jee) throws IOException {
		super(jee);
	}

	@SuppressWarnings("unchecked")
	public void doGet(String token, User u, HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		String error = null;
		String success = null;

		String a = request.getParameter("a");
		if(a != null && !a.equals(u.getFormAuthToken())) {
			throw new IllegalArgumentException("Invalid authentication token.");
		}

		if(!u.hasRole(Constants.PERSON_MANAGE_ROLE)) {
			throw new PermissionException(SearchPeople.class.getSimpleName(), u, "You do not have permission to manage person details.", Constants.PERSON_MANAGE_ROLE);
		}

		if(a != null && request.getParameter("uuid") != null) {
			Throttle r = jee.getAPI().deleteThrottle(u, request.getParameter("uuid"));
			if(r != null) {
				success = "Removed throttle on " + StringHelper.escapeHtml(r.getUid()) + ".";
			}
		}

		List suspension = null;
		String q = request.getParameter("q");
		if(q == null) { q = ""; }
		q = q.trim();

		suspension = jee.getAPI().getThrottles(u);

		ST page = jee.getPage(u, "suspended_accounts");
		if(q.length() == 0) {
			page.add("q", null);
		} else {
			page.add("q", q);
		}
		page.add("suspension", suspension);
		page.add("error", error);
		page.add("success", success);
		page.add("auth", u.getFormAuthToken());
		page.add("breadcrumbs", new Breadcrumb("People", "/people?q=" + StringHelper.urlEscape(q)));
		page.add("breadcrumbs", new Breadcrumb("Suspended Accounts", null));

		response.getWriter().write(page.render());

	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy