yenu/src/clj/yenu/routes/auth.clj
Aaron Fischer 4a135f7880
Update all dependencies and change language to EN
Update bootstrap required a lot of template work, so I had no change to
split the commit in two separate commits to rebase the language change.
This means, yenu is EN only by now.
2022-05-05 11:28:58 +02:00

36 lines
1.2 KiB
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)
next-url (get-in request [:params :next] "/page/1")]
(if user-identity
(let [updated-session (assoc session :identity user-identity)]
(-> (redirect next-url)
(assoc :flash {:message "Login successfull" :type "success"})
(assoc :session updated-session)))
(-> (redirect (format "/login?next=%s" next-url))
(assoc :flash {:message "Wrong password" :type "danger"})))))
(defn logout! [request]
(-> (redirect "/login")
(assoc :session {})
(assoc :flash {:message "Logout successfull" :type "success"})))
(defroutes auth-routes
(GET "/login" [:as request]
(layout/render-file "login.html", {:flash (:flash request)}))
(POST "/login" [] login!)
(GET "/logout" [] logout!))