Redirect to “noPermission.html” if a POST request does not have the correct form...
[Sone.git] / src / main / java / net / pterodactylus / sone / web / page / PageToadlet.java
index af826f1..4334a7f 100644 (file)
@@ -21,6 +21,7 @@ import java.io.IOException;
 import java.net.URI;
 import java.util.Map.Entry;
 
+import net.pterodactylus.sone.web.page.Page.Request.Method;
 import freenet.client.HighLevelSimpleClient;
 import freenet.clients.http.LinkEnabledCallback;
 import freenet.clients.http.Toadlet;
@@ -34,7 +35,7 @@ import freenet.support.io.Closer;
 
 /**
  * {@link Toadlet} implementation that is wrapped around a {@link Page}.
- * 
+ *
  * @author <a href="mailto:bombe@pterodactylus.net">David ‘Bombe’ Roden</a>
  */
 public class PageToadlet extends Toadlet implements LinkEnabledCallback {
@@ -50,7 +51,7 @@ public class PageToadlet extends Toadlet implements LinkEnabledCallback {
 
        /**
         * Creates a new toadlet that hands off processing to a {@link Page}.
-        * 
+        *
         * @param highLevelSimpleClient
         * @param menuName
         *            The name of the menu item
@@ -69,7 +70,7 @@ public class PageToadlet extends Toadlet implements LinkEnabledCallback {
 
        /**
         * Returns the name to display in the menu.
-        * 
+        *
         * @return The name in the menu
         */
        public String getMenuName() {
@@ -86,7 +87,7 @@ public class PageToadlet extends Toadlet implements LinkEnabledCallback {
 
        /**
         * Handles a HTTP GET request.
-        * 
+        *
         * @param uri
         *            The URI of the request
         * @param httpRequest
@@ -99,12 +100,12 @@ public class PageToadlet extends Toadlet implements LinkEnabledCallback {
         *             if the toadlet context is closed
         */
        public void handleMethodGET(URI uri, HTTPRequest httpRequest, ToadletContext toadletContext) throws IOException, ToadletContextClosedException {
-               handleRequest(new Page.Request(uri, "GET", httpRequest, toadletContext));
+               handleRequest(new Page.Request(uri, Method.GET, httpRequest, toadletContext));
        }
 
        /**
         * Handles a HTTP POST request.
-        * 
+        *
         * @param uri
         *            The URI of the request
         * @param httpRequest
@@ -117,7 +118,7 @@ public class PageToadlet extends Toadlet implements LinkEnabledCallback {
         *             if the toadlet context is closed
         */
        public void handleMethodPOST(URI uri, HTTPRequest httpRequest, ToadletContext toadletContext) throws IOException, ToadletContextClosedException {
-               handleRequest(new Page.Request(uri, "POST", httpRequest, toadletContext));
+               handleRequest(new Page.Request(uri, Method.POST, httpRequest, toadletContext));
        }
 
        /**
@@ -130,7 +131,7 @@ public class PageToadlet extends Toadlet implements LinkEnabledCallback {
 
        /**
         * Handles a HTTP request.
-        * 
+        *
         * @param pageRequest
         *            The request to handle
         * @throws IOException
@@ -172,6 +173,9 @@ public class PageToadlet extends Toadlet implements LinkEnabledCallback {
         */
        @Override
        public boolean isEnabled(ToadletContext toadletContext) {
+               if (page instanceof LinkEnabledCallback) {
+                       return ((LinkEnabledCallback) page).isEnabled(toadletContext);
+               }
                return true;
        }