Add the authorization to login and logout as the admin.
This commit is contained in:
@@ -22,6 +22,46 @@
|
|||||||
(res/status 500)
|
(res/status 500)
|
||||||
(res/send (ex-message err))))))))
|
(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
|
(defn admin-panel-handler-factory
|
||||||
[client]
|
[client]
|
||||||
(fn [req res]
|
(fn [req res]
|
||||||
|
|||||||
@@ -65,7 +65,16 @@
|
|||||||
|
|
||||||
(. app get "/"
|
(. app get "/"
|
||||||
(handlers/index-page-handler-factory client))
|
(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"
|
(. app get "/admin"
|
||||||
(handlers/admin-panel-handler-factory client))
|
(handlers/admin-panel-handler-factory client))
|
||||||
|
|||||||
@@ -0,0 +1,25 @@
|
|||||||
|
<main class="bg-white dark:bg-gray-800 py-4 grow">
|
||||||
|
<section>
|
||||||
|
<div class="flex flex-col items-center justify-center px-6 py-8 mx-auto lg:py-0">
|
||||||
|
<div class="w-full bg-white rounded-lg shadow dark:border md:mt-0 sm:max-w-md xl:p-0 dark:bg-gray-800 dark:border-gray-700">
|
||||||
|
<div class="p-6 space-y-4 md:space-y-6 sm:p-8">
|
||||||
|
<h1 class="text-xl font-bold leading-tight tracking-tight text-gray-900 md:text-2xl dark:text-white">
|
||||||
|
Sign in to your account
|
||||||
|
</h1>
|
||||||
|
<form class="space-y-4 md:space-y-6" action="/login" method="POST">
|
||||||
|
<div>
|
||||||
|
<label for="login" class="block mb-2 text-sm font-medium text-gray-900 dark:text-white">Your login</label>
|
||||||
|
<input type="login" name="login" id="login" class="bg-gray-50 border border-gray-300 text-gray-900 sm:text-sm rounded-lg focus:ring-[#2563eb] focus:border-[#2563eb] block w-full p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-blue-500 dark:focus:border-blue-500" placeholder="login" required="">
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<label for="password" class="block mb-2 text-sm font-medium text-gray-900 dark:text-white">Password</label>
|
||||||
|
<input type="password" name="password" id="password" placeholder="••••••••" class="bg-gray-50 border border-gray-300 text-gray-900 sm:text-sm rounded-lg focus:ring-[#2563eb] focus:border-[#2563eb] block w-full p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-blue-500 dark:focus:border-blue-500" required="">
|
||||||
|
</div>
|
||||||
|
<button type="submit" class="w-full text-white bg-[#2563eb] hover:bg-[#1d4ed8] focus:ring-4 focus:outline-none focus:ring-[#93c5fd] font-medium rounded-lg text-sm px-5 py-2.5 text-center dark:bg-[#2563eb] dark:hover:bg-[#1d4ed8] dark:focus:ring-[#1e40af]">Sign in</button>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</main>
|
||||||
|
|
||||||
Reference in New Issue
Block a user