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

35 lines
1.2 KiB
Clojure
Raw Normal View History

2017-03-29 14:39:03 +02:00
(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)]
2017-03-29 22:14:55 +02:00
(-> (redirect "/page/1")
(assoc :flash {:message "Erfolgreich eingeloggt." :type "success"})
(assoc :session updated-session)))
(-> (redirect "/login")
(assoc :flash {:message "Falsches Passwort." :type "danger"})))))
2017-03-29 14:39:03 +02:00
(defn logout! [request]
2017-03-29 22:14:55 +02:00
(-> (redirect "/login")
(assoc :session {})
(assoc :flash {:message "Erfolgreich ausgeloggt." :type "success"})))
2017-03-29 14:39:03 +02:00
(defroutes auth-routes
2017-03-29 22:14:55 +02:00
(GET "/login" [:as request]
2017-04-23 22:33:28 +02:00
(layout/render-file "login.html", {:flash (:flash request)}))
2017-03-29 14:39:03 +02:00
(POST "/login" [] login!)
(GET "/logout" [] logout!))