diff options
| -rw-r--r-- | service/auth-service.lisp | 2 | ||||
| -rw-r--r-- | service/inetorg-view-service.lisp | 4 | ||||
| -rw-r--r-- | webapps/ldapadmin/clojurescript/ldapadmin/src/core.cljs | 16 | ||||
| -rw-r--r-- | webapps/ldapadmin/site.lisp | 8 |
4 files changed, 18 insertions, 12 deletions
diff --git a/service/auth-service.lisp b/service/auth-service.lisp index e6f3ef4..e5e7e27 100644 --- a/service/auth-service.lisp +++ b/service/auth-service.lisp @@ -14,6 +14,6 @@ (defmacro with-auth ((instance auth-service) &body body) `(let ((,instance (make-instance ',auth-service))) - (when (null (errormsg ,instance)) + (when (string= (session-value :permissions) "admin") ,@body) (org-ckons-json::objects-to-json `(,,instance)))) diff --git a/service/inetorg-view-service.lisp b/service/inetorg-view-service.lisp index 370fdc6..7beeed3 100644 --- a/service/inetorg-view-service.lisp +++ b/service/inetorg-view-service.lisp @@ -9,8 +9,10 @@ :accessor title)) (:documentation "")) -(defun inetorg-view-json () +(defun inetorg-view-json (&optional message errormsg) (with-auth (instance inetorg-view-service) + (setf (message instance) message) + (setf (errormsg instance) errormsg) (setf (title instance) "Use the form to filter the InetOrg results."))) (defclass inetorg-view-search-service (auth-service) diff --git a/webapps/ldapadmin/clojurescript/ldapadmin/src/core.cljs b/webapps/ldapadmin/clojurescript/ldapadmin/src/core.cljs index 8fce8dd..2a6d489 100644 --- a/webapps/ldapadmin/clojurescript/ldapadmin/src/core.cljs +++ b/webapps/ldapadmin/clojurescript/ldapadmin/src/core.cljs @@ -74,7 +74,7 @@ (defn maybe-error [jsonobj] (let [errormsg (get jsonobj "errormsg")] - (cond (or (= nil errormsg) (= "" errormsg)) + (cond (empty? errormsg) (dommy/set-style! (dommy/sel1 :#errormsg) :display "none") :else (do @@ -84,7 +84,7 @@ (defn maybe-message [jsonobj] (let [message (get jsonobj "message")] - (cond (or (= nil message) (= "" message)) + (cond (empty? message) (dommy/set-style! (dommy/sel1 :#message) :display "none") :else (do @@ -97,12 +97,12 @@ (maybe-message jsonobj)) (defn auth-notifications [jsonobj] - (cond (get jsonobj "errormsg") + (cond (empty? (get jsonobj "errormsg")) + (maybe-message jsonobj) + :else (do (render-home "" (get jsonobj "errormsg")) - (render-menu)) - :else - (maybe-message jsonobj))) + (render-menu)))) ;; forms @@ -287,7 +287,7 @@ (defn handler-logout [response] (let [jsonobj (js->clj (js/JSON.parse response))] - (render-home"You are now logged out" "") + (render-home "You are now logged out" "") (dommy/set-html! (dommy/sel1 :#location) "/home") (render-menu))) @@ -297,7 +297,7 @@ ;; inetorg-view (hiccups/defhtml template-inetorg-view [jsonobj] - [:h3 {:style "text-align: center"} (get jsonobj "instructions")] + [:h3 {:style "text-align: center"} (get jsonobj "title")] [:div {:id "search"}] [:div {:id "results"}] [:div {:id "modify" diff --git a/webapps/ldapadmin/site.lisp b/webapps/ldapadmin/site.lisp index eb644bd..891c9f9 100644 --- a/webapps/ldapadmin/site.lisp +++ b/webapps/ldapadmin/site.lisp @@ -55,9 +55,12 @@ (defmacro .logout () `(logout-json)) -(defmacro .inetorg-view () +(defmacro .inetorg-view-get () `(inetorg-view-json)) +(defmacro .inetorg-view-post () + `(inetorg-view-json message errormsg)) + (defmacro .inetorg-view-search () `(inetorg-view-search-json)) @@ -90,7 +93,8 @@ (define-endpoint :get "/login" () .login) (define-endpoint :post "/login/authenticate" ((dn :parameter-type 'string) (password :parameter-type 'string)) .login-authenticate) (define-endpoint :get "/logout" () .logout) -(define-endpoint :get "/inetorg/view" () .inetorg-view) +(define-endpoint :get "/inetorg/view" () .inetorg-view-get) +(define-endpoint :post "/inetorg/view" ((message :parameter-type 'string) (errormsg :parameter-type 'string)) .inetorg-view-post) (define-endpoint :get "/inetorg/view/search" () .inetorg-view-search) (define-endpoint :post "/inetorg/view/results" ((givenname :parameter-type 'string) (sn :parameter-type 'string) (mail :parameter-type 'string) (postaladdress :parameter-type 'string) (postalcode :parameter-type 'string) (st :parameter-type 'string) (l :parameter-type 'string) (telephonenumber :parameter-type 'string) (mobile :parameter-type 'string) (businesscategory :parameter-type 'string)) .inetorg-view-results) (define-endpoint :post "/inetorg/modify" ((cn :parameter-type 'string)) .inetorg-modify) |
