yenu/src/clj/yenu/routes/auth.clj

31 lines
893 B
Clojure

(ns yenu.routes.auth
(:require [yenu.layout :as layout]
[compojure.core :refer [defroutes GET POST]]
[yenu.config :refer [env]]
[ring.util.response :refer [redirect]]))
(defn valid-identity [password]
(cond
(= password (:creator-password env)) :creator
(= password (:user-password env)) :user))
(defn login! [request]
(let [password (get-in request [:form-params "password"])
session (:session request)
user-identity (valid-identity password)]
(if user-identity
(let [updated-session (assoc session :identity user-identity)]
(-> (redirect "/")
(assoc :session updated-session))))))
(defn logout! [request]
(-> (redirect "/")
(assoc :session {})))
(defroutes auth-routes
(GET "/login" []
(layout/render "login.html"))
(POST "/login" [] login!)
(GET "/logout" [] logout!))