From e678d9ba62cd44795fe8d4b882e61dfbd672729e Mon Sep 17 00:00:00 2001 From: ckonstanski Date: Thu, 24 Dec 2020 22:27:40 -0700 Subject: fixed message and errormsg --- service/auth-service.lisp | 11 +++++++++++ service/home-service.lisp | 6 +++--- service/inetorg-add-service.lisp | 6 ++---- service/inetorg-delete-service.lisp | 8 +++----- service/inetorg-modify-service.lisp | 10 +++------- service/inetorg-view-service.lisp | 12 ++++-------- service/login-service.lisp | 28 ++++++++++++++-------------- service/logout-service.lisp | 4 +--- service/menu-service.lisp | 5 ++++- service/rest-service.lisp | 19 +++++++++++++------ 10 files changed, 58 insertions(+), 51 deletions(-) (limited to 'service') diff --git a/service/auth-service.lisp b/service/auth-service.lisp index e5e7e27..1702bde 100644 --- a/service/auth-service.lisp +++ b/service/auth-service.lisp @@ -16,4 +16,15 @@ `(let ((,instance (make-instance ',auth-service))) (when (string= (session-value :permissions) "admin") ,@body) + (when (location-p ,instance) + (setf (session-value :message) nil) + (setf (session-value :errormsg) nil)) (org-ckons-json::objects-to-json `(,,instance)))) + +(defmacro with-noauth ((instance rest-service) &body body) + `(let ((,instance (make-instance ',rest-service))) + ,@body + (when (location-p ,instance) + (setf (session-value :message) nil) + (setf (session-value :errormsg) nil)) + (org-ckons-json::objects-to-json `(,,instance)))) diff --git a/service/home-service.lisp b/service/home-service.lisp index 2685264..5379a9f 100644 --- a/service/home-service.lisp +++ b/service/home-service.lisp @@ -13,6 +13,6 @@ (setf (content home-service) (format nil "Welcome to the ~a website" (title *webapp*)))) (defun home-json (&optional message errormsg) - (org-ckons-json::objects-to-json `(,(make-instance 'home-service - :message message - :errormsg errormsg)))) + (with-noauth (instance home-service) + (when message (setf (message instance) message)) + (when errormsg (setf (errormsg instance) errormsg)))) diff --git a/service/inetorg-add-service.lisp b/service/inetorg-add-service.lisp index 9647060..681da97 100644 --- a/service/inetorg-add-service.lisp +++ b/service/inetorg-add-service.lisp @@ -34,9 +34,7 @@ t)) (defclass inetorg-add-submit-service (auth-service) - ((location-p :initarg :location-p - :initform nil - :accessor location-p)) + ((location-p :initform nil)) (:documentation "")) (defun inetorg-add-submit-json (givenname sn mail postaladdress postalcode st l telephonenumber mobile businesscategory) @@ -54,4 +52,4 @@ :mobile mobile :businesscategory businesscategory))) (add-ldap-user ldap-user ldap) - (setf (message instance) "InetOrg entry created successfully."))))) + (setf (session-value :message) "InetOrg entry created successfully."))))) diff --git a/service/inetorg-delete-service.lisp b/service/inetorg-delete-service.lisp index 8756f64..9f545cd 100644 --- a/service/inetorg-delete-service.lisp +++ b/service/inetorg-delete-service.lisp @@ -7,9 +7,7 @@ ((cn :initarg :cn :initform nil :accessor cn) - (location-p :initarg :location-p - :initform nil - :accessor location-p)) + (location-p :initform nil)) (:documentation "")) (defun inetorg-delete-json (cn) @@ -17,7 +15,7 @@ (setf (cn instance) cn))) (defclass inetorg-delete-submit-service (auth-service) - () + ((location-p :initform nil)) (:documentation "")) (defun inetorg-delete-submit-json (cn) @@ -25,4 +23,4 @@ (with-ldap (ldap) (let ((ldap-user (get-ldap-user ldap cn))) (delete-ldap-user ldap-user ldap) - (setf (message instance) "InetOrg entry deleted successfully."))))) + (setf (session-value :message) "InetOrg entry deleted successfully."))))) diff --git a/service/inetorg-modify-service.lisp b/service/inetorg-modify-service.lisp index 61e7c16..47ca6cd 100644 --- a/service/inetorg-modify-service.lisp +++ b/service/inetorg-modify-service.lisp @@ -13,9 +13,7 @@ (title :initarg :title :initform nil :accessor title) - (location-p :initarg :location-p - :initform nil - :accessor location-p)) + (location-p :initform nil)) (:documentation "")) (defmethod initialize-instance :after ((inetorg-modify-service inetorg-modify-service) &key) @@ -40,9 +38,7 @@ (setf (ldap-user-values instance) (get-ldap-user ldap cn))))) (defclass inetorg-modify-submit-service (auth-service) - ((location-p :initarg :location-p - :initform nil - :accessor location-p)) + ((location-p :initform nil)) (:documentation "")) (defun inetorg-modify-submit-json (givenname sn mail postaladdress postalcode st l telephonenumber mobile businesscategory) @@ -60,4 +56,4 @@ :mobile mobile :businesscategory businesscategory))) (modify-ldap-user ldap-user ldap) - (setf (message instance) "InetOrg entry saved successfully."))))) + (setf (session-value :message) "InetOrg entry saved successfully."))))) diff --git a/service/inetorg-view-service.lisp b/service/inetorg-view-service.lisp index 7beeed3..ab89123 100644 --- a/service/inetorg-view-service.lisp +++ b/service/inetorg-view-service.lisp @@ -11,8 +11,8 @@ (defun inetorg-view-json (&optional message errormsg) (with-auth (instance inetorg-view-service) - (setf (message instance) message) - (setf (errormsg instance) errormsg) + (when message (setf (message instance) message)) + (when errormsg (setf (errormsg instance) errormsg)) (setf (title instance) "Use the form to filter the InetOrg results."))) (defclass inetorg-view-search-service (auth-service) @@ -22,9 +22,7 @@ (title :initarg :title :initform nil :accessor title) - (location-p :initarg :location-p - :initform nil - :accessor location-p)) + (location-p :initform nil)) (:documentation "")) (defmethod initialize-instance :after ((inetorg-view-search-service inetorg-view-search-service) &key) @@ -51,9 +49,7 @@ ((results :initarg :results :initform nil :accessor results) - (location-p :initarg :location-p - :initform nil - :accessor location-p)) + (location-p :initform nil)) (:documentation "")) (defun inetorg-view-results-json (givenname sn mail postaladdress postalcode st l telephonenumber mobile businesscategory) diff --git a/service/login-service.lisp b/service/login-service.lisp index 10e0722..a911c49 100644 --- a/service/login-service.lisp +++ b/service/login-service.lisp @@ -22,22 +22,22 @@ (:label "Login" :field-type "button" :onclick "on_login_submit_clicked()"))))) (defun login-json () - (org-ckons-json::objects-to-json `(,(make-instance 'login-service)))) + (with-noauth (instance login-service) + nil)) (defclass login-authenticate-service (rest-service) - ((location-p :initarg :location-p - :initform nil - :accessor location-p)) + ((location-p :initform nil)) (:documentation "")) -(defmethod initialize-instance :after ((login-authenticate-service login-authenticate-service) &key auth-result) - (if auth-result - (setf (message login-authenticate-service) "Successfully logged in.") - (setf (errormsg login-authenticate-service) "Login failed."))) - (defun login-authenticate-json (dn password) - (let ((auth-result nil)) - (when (check-ldap-password (ldap *webapp*) dn password) - (setf (session-value :permissions) "admin") - (setf auth-result t)) - (org-ckons-json::objects-to-json `(,(make-instance 'login-authenticate-service :auth-result auth-result))))) + (with-noauth (instance login-authenticate-service) + (cond ((check-ldap-password (ldap *webapp*) dn password) + (setf (session-value :permissions) "admin") + (setf (session-value :message) "Successfully logged in.") + (setf (session-value :errormsg) 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)))) + diff --git a/service/logout-service.lisp b/service/logout-service.lisp index 208c419..54a02b4 100644 --- a/service/logout-service.lisp +++ b/service/logout-service.lisp @@ -4,9 +4,7 @@ (in-package #:ldapadmin) (defclass logout-service (rest-service) - ((location-p :initarg :location-p - :initform nil - :accessor location-p)) + ((location-p :initform nil)) (:documentation "")) (defmethod initialize-instance :after ((logout-service logout-service) &key) diff --git a/service/menu-service.lisp b/service/menu-service.lisp index 8ea0515..86d114b 100644 --- a/service/menu-service.lisp +++ b/service/menu-service.lisp @@ -33,7 +33,10 @@ (defclass menu-service (base-service) ((menuitems :initarg :menuitems :initform nil - :accessor menuitems)) + :accessor menuitems) + (location-p :initarg :location-p + :initform nil + :accessor location-p)) (:documentation "")) (defmethod initialize-instance :after ((menu-service menu-service) &key) diff --git a/service/rest-service.lisp b/service/rest-service.lisp index 3c122f7..e57af23 100644 --- a/service/rest-service.lisp +++ b/service/rest-service.lisp @@ -10,17 +10,24 @@ (location-p :initarg :location-p :initform t :accessor location-p) - (errormsg :initarg :errormsg - :initform nil - :accessor errormsg) (message :initarg :message :initform nil - :accessor message)) + :accessor message) + (errormsg :initarg :errormsg + :initform nil + :accessor errormsg)) (:documentation "")) (defmethod initialize-instance :after ((rest-service rest-service) &key) - (when (and (location-p rest-service) (null (location rest-service))) - (setf (location rest-service) (type-to-path rest-service)))) + (when (location-p rest-service) + (if (message rest-service) + (setf (session-value :message) (message rest-service)) + (setf (message rest-service) (session-value :message))) + (if (errormsg rest-service) + (setf (session-value :errormsg) (errormsg rest-service)) + (setf (errormsg rest-service) (session-value :errormsg))) + (when (null (location rest-service)) + (setf (location rest-service) (type-to-path rest-service))))) (defun location-json (&optional (location "/home")) (format nil "{\"location\":\"~a\"}" location)) -- cgit v1.3