]> WPIA git - gigi.git/blobdiff - src/club/wpia/gigi/pages/LogoutPage.java
upd: rename package name and all references to it
[gigi.git] / src / club / wpia / gigi / pages / LogoutPage.java
diff --git a/src/club/wpia/gigi/pages/LogoutPage.java b/src/club/wpia/gigi/pages/LogoutPage.java
new file mode 100644 (file)
index 0000000..62379e7
--- /dev/null
@@ -0,0 +1,38 @@
+package club.wpia.gigi.pages;
+
+import java.io.IOException;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.servlet.http.HttpSession;
+
+import club.wpia.gigi.Gigi;
+import club.wpia.gigi.util.AuthorizationContext;
+
+public class LogoutPage extends Page {
+
+    public static final String PATH = "/logout";
+
+    public LogoutPage() {
+        super("Logout");
+    }
+
+    @Override
+    public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
+        HttpSession hs = req.getSession();
+        if (req.getPathInfo() != null && req.getPathInfo().equals("/logout")) {
+            if (hs != null) {
+                hs.setAttribute(Gigi.LOGGEDIN, null);
+                hs.invalidate();
+            }
+            resp.sendRedirect("/");
+            return;
+        }
+    }
+
+    @Override
+    public boolean isPermitted(AuthorizationContext ac) {
+        return ac != null;
+    }
+
+}