Mercurial Hosting > nabble
view src/nabble/view/web/catalog/SetPin.java @ 19:18cf4872fd7f
remove anonymous posting
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Fri, 29 May 2020 22:58:25 -0600 |
parents | 7ecd1a4ef557 |
children |
line wrap: on
line source
package nabble.view.web.catalog; import fschmidt.util.servlet.AuthorizingServlet; import nabble.model.ModelHome; import nabble.model.Node; import nabble.model.User; import nabble.view.lib.Jtp; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; public class SetPin extends HttpServlet implements AuthorizingServlet { public String getAuthorizationKey(HttpServletRequest request) throws ServletException { return Jtp.getReadAuthorizationKey( Jtp.getSiteNotNull(request).getNode(Jtp.getLong(request,"node")) ); } public boolean authorize(String key,HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException { return Jtp.authorizeForRead(key,request,response); } protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { User visitor = Jtp.getUser(request); Node node = Jtp.getSiteNotNull(request).getNode(Jtp.getLong(request, "node")); if (!Jtp.canBeRemovedBy(node,visitor)) { Jtp.login("Only administrators can proceed in this area.", request, response); return; } else if (node.getParent() == null) { // Parent was removed (e.g., user clicked on the back button and // tried to pin/unpin a node on a dead parent) response.sendError(HttpServletResponse.SC_GONE, "The parent of this node has been deleted. You cannot pin/unpin a node under a dead parent."); return; } String value = request.getParameter("value"); boolean pin = "pin".equals(value); if (pin) Jtp.addPinnedChild(node.getParent(), node); else { Jtp.unpinChild(node.getParent(), node); } boolean isScript = "y".equals(request.getParameter("script")); if (isScript) { response.setHeader("Content-Type","application/x-javascript"); } else { String what = node.getKind() == Node.Kind.APP? "forums" : "threads"; Jtp.sendRedirect(request,response,"/catalog/ChangePinOrder.jtp?forum=" + node.getParent().getId() + "&what=" + what); } } }