diff options
| author | ckonstanski <kostcarl@isu.edu> | 2026-09-06 22:04:28 -0600 |
|---|---|---|
| committer | ckonstanski <kostcarl@isu.edu> | 2026-09-06 22:04:28 -0600 |
| commit | e774d11af63764a7457d842ecd74b30a183fa71e (patch) | |
| tree | 7e0237cf69236ca14a7ad954dc083355b8f30e4a /lisp/service/login-service.lisp | |
| parent | beb0bed0b615ebcfdc0415cc9d7aff656964c427 (diff) | |
Diffstat (limited to 'lisp/service/login-service.lisp')
| -rw-r--r-- | lisp/service/login-service.lisp | 61 |
1 files changed, 28 insertions, 33 deletions
diff --git a/lisp/service/login-service.lisp b/lisp/service/login-service.lisp index 7a80bfd..408039c 100644 --- a/lisp/service/login-service.lisp +++ b/lisp/service/login-service.lisp @@ -12,53 +12,48 @@ :accessor title)) (:documentation "")) -(defclass login-forgot-service (login-service) - () +(defclass login-authenticate-service (rest-service) + ((location-p :initform nil)) (:documentation "")) -(defmethod initialize-instance :after ((login-service login-service) &key) - (setf (title login-service) "Login") - (setf (form login-service) (make-form "login-form" - nil - t - '((:name "username" :label "Username" :field-type "text" :required "required") - (:name "pwd" :label "Password" :field-type "password" :required "required") - (:label "Login" :field-type "button" :onclick "on_login_submit_clicked()"))))) - -(defmethod initialize-instance :after ((login-forgot-service login-forgot-service) &key) - (setf (title login-forgot-service) "Reset Password") - (setf (form login-forgot-service) (make-form "login-forgot-form" - nil - t - '((:name "username" :label "Username" :field-type "text" :required "required") - (:label "Send password reset email" :field-type "button" :onclick "on_login_forgot_submit_clicked()"))))) - (defun login-json () (with-noauth (instance login-service) - t)) + (setf (title instance) "Login") + (setf (form instance) (make-form "login-form" + nil + t + '((:name "username" :label "Username" :field-type "text" :required "required") + (:name "pwd" :label "Password" :field-type "password" :required "required") + (:label "Login" :field-type "button" :onclick "on_login_submit_clicked()")))))) (defun login-forgot-json () - (with-noauth (instance login-forgot-service) - t)) - -(defclass login-authenticate-service (rest-service) - ((location-p :initform nil)) - (:documentation "")) + (with-noauth (instance login-service) + (setf (title instance) "Reset Password") + (setf (form instance) (make-form "login-forgot-form" + nil + t + '((:name "username" :label "Username" :field-type "text" :required "required") + (:label "Send password reset email" :field-type "button" :onclick "on-login-forgot-submit-clicked")))))) (defun login-authenticate-json (username pwd) (with-noauth (instance login-authenticate-service) (if (or (org-ckons-core::null-or-empty-p username) (org-ckons-core::null-or-empty-p pwd)) - (setf (session-value :errormsg) "Login failed.") + (setf (errormsg instance) "Login failed.") (with-bogenherr-database (let* ((auth-pkg (make-instance 'auth-pkg)) (user (get-active-user-by-username-pwd auth-pkg username pwd))) (cond (user (set-user user) - (setf (session-value :message) "Successfully logged in.") - (setf (session-value :errormsg) nil)) + (setf (message instance) "Successfully logged in.") + (setf (errormsg instance) nil)) (t - (setf (session-value :message) nil) - (setf (session-value :errormsg) "Login failed.")))))) - (setf (message instance) (session-value :message)) - (setf (errormsg instance) (session-value :errormsg)))) + (setf (message instance) nil) + (setf (errormsg instance) "Login failed.")))))) + (setf (message instance) (message instance)) + (setf (errormsg instance) (errormsg instance)))) + +(define-endpoint ("/login" :method :get) () login-json) +(define-endpoint ("/login/authenticate" :method :post) (&post (username :parameter-type 'string) (pwd :parameter-type 'string)) login-authenticate-json username pwd) +(define-endpoint ("/login/forgot" :method :get) () login-forgot-json) +(define-endpoint ("/logout" :method :get) () logout-json) |
