Add the authorization to login and logout as the admin.
This commit is contained in:
@@ -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]
|
||||
|
||||
@@ -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))
|
||||
|
||||
Reference in New Issue
Block a user