From 732d1b733a989c5941cbb40ea4418b9c2f5ee129 Mon Sep 17 00:00:00 2001 From: Griffin Smith Date: Sun, 19 Dec 2021 00:03:45 -0500 Subject: feat(grfn/bbbg): Add a Sign Out button Change-Id: Ia57a31101dc294dba54a4fde7af2b636288bd4cd Reviewed-on: https://cl.tvl.fyi/c/depot/+/4411 Reviewed-by: grfn Autosubmit: grfn Tested-by: BuildkiteCI --- users/grfn/bbbg/src/bbbg/handlers/core.clj | 4 ++++ users/grfn/bbbg/src/bbbg/handlers/home.clj | 22 +++++++++++++++++----- 2 files changed, 21 insertions(+), 5 deletions(-) (limited to 'users/grfn') diff --git a/users/grfn/bbbg/src/bbbg/handlers/core.clj b/users/grfn/bbbg/src/bbbg/handlers/core.clj index beadc198d376..3226a221ef81 100644 --- a/users/grfn/bbbg/src/bbbg/handlers/core.clj +++ b/users/grfn/bbbg/src/bbbg/handlers/core.clj @@ -1,5 +1,6 @@ (ns bbbg.handlers.core (:require + [bbbg.user :as user] [bbbg.views.flash :as flash] [hiccup.core :refer [html]] [ring.util.response :refer [content-type response]])) @@ -31,6 +32,9 @@ response (content-type "text/html"))) +(defn authenticated? [request] + (some? (get-in request [:session ::user/id]))) + (comment (render-page [:h1 "hi"]) diff --git a/users/grfn/bbbg/src/bbbg/handlers/home.clj b/users/grfn/bbbg/src/bbbg/handlers/home.clj index 4b46675e4c34..00a96f2d87f6 100644 --- a/users/grfn/bbbg/src/bbbg/handlers/home.clj +++ b/users/grfn/bbbg/src/bbbg/handlers/home.clj @@ -2,10 +2,10 @@ (:require [bbbg.db.user :as db.user] [bbbg.discord.auth :as discord.auth] - [bbbg.handlers.core :refer [page-response]] + [bbbg.handlers.core :refer [page-response authenticated?]] [bbbg.user :as user] [bbbg.views.flash :as flash] - [compojure.core :refer [GET routes]] + [compojure.core :refer [GET POST routes]] [ring.util.response :refer [redirect]] [bbbg.discord :as discord])) @@ -14,7 +14,11 @@ [:ul [:li [:a {:href "/signup-forms"} "Event Signup Form"]] - (when-not authenticated? + (if authenticated? + [:li [:form {:method :post + :action "/auth/sign-out"} + [:input {:type "submit" + :value "Sign Out"}]]] [:li [:a {:href "/auth/discord"} "Sign In"]])]]) @@ -28,8 +32,16 @@ (defn home-routes [{:keys [db] :as env}] (routes (GET "/" request - (let [authenticated? (some? (get-in request [:session ::user/id]))] - (page-response (home-page {:authenticated? authenticated?})))) + (page-response (home-page {:authenticated? (authenticated? request)}))) + + (POST "/auth/sign-out" request + (if (authenticated? request) + (-> (redirect "/") + (update :session dissoc ::user/id) + (flash/add-flash + {:flash/message "Successfully Signed Out" + :flash/type :success})) + (redirect "/"))) (GET "/auth/success" request (let [token (get-in request [:oauth2/access-tokens :discord])] -- cgit 1.4.1