Add the authorization to login and logout as the admin.

This commit is contained in:
2024-04-18 15:36:53 +03:00
parent a1d48ceb64
commit d70f03aee4
3 changed files with 75 additions and 1 deletions
+40
View File
@@ -22,6 +22,46 @@
(res/status 500)
(res/send (ex-message err))))))))
(defn login-page-handler-factory
[]
(fn [req res]
(.render res "login")))
(defn login-page-auth-handler-factory
[]
(fn [req res]
(let [session (.-user (.-session req))
login (.-login (.-body req))
password (.-password (.-body req))]
(cond
(some? session)
(.redirect res "/")
(and (= login "admin")
(= password "admin"))
(do
; req.session.user = "admin";
(set! (.-user (.-session req)) "admin")
(.redirect res "/admin"))
:else
(.redirect res "/")
))))
(defn logout-page-handler-factory
[]
(fn [req res]
(let [session (.-user (.-session req))]
(cond
(some? session)
(do
(.destroy (.-session req))
(.redirect res "/"))
:else
(.redirect res "/")
))))
(defn admin-panel-handler-factory
[client]
(fn [req res]
+10 -1
View File
@@ -65,7 +65,16 @@
(. app get "/"
(handlers/index-page-handler-factory client))
(fn [req res]
(. app get "/login"
(handlers/login-page-handler-factory))
(. app post "/login"
(handlers/login-page-auth-handler-factory))
(. app get "/logout"
(handlers/logout-page-handler-factory))
(. app get "/admin"
(handlers/admin-panel-handler-factory client))