reset-page-on-authentication-change

This commit is contained in:
David Botton 2022-04-18 17:08:20 -04:00
parent fcee7553d1
commit 47057b5000
2 changed files with 20 additions and 9 deletions

View file

@ -18,7 +18,8 @@
"CLOG-AUTH - authorization abstraction for CLOG"
(get-authentication-token function)
(store-authentication-token function)
(remove-authentication-token function))
(remove-authentication-token function)
(reset-page-on-authentication-change function))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Implementation - clog-auth
@ -32,7 +33,7 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun get-authentication-token (body &key auth-path)
"Retrieve the stored authorization token"
"Retrieve the stored authentication token"
(let ((token (storage-element (window body) :local *clog-auth-key*)))
(when (equalp token "null")
(setf token nil))
@ -55,5 +56,15 @@
(defun remove-authentication-token (body)
(storage-remove (window body) :local *clog-auth-key*))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; reset-page-on-authentication-change ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun reset-page-on-authentication-change (obj)
(let ((body (connection-body obj)))
(set-on-storage (window body) (lambda (obj data)
(set-on-storage (window body) nil)
(when (equalp (getf data :key)
"clog-auth-token")
(reload (location body)))))))

View file

@ -184,19 +184,19 @@
;; url-replace ;;
;;;;;;;;;;;;;;;;;
(defgeneric url-replace (clog-window replace-url)
(defgeneric url-replace (clog-location replace-url)
(:documentation "Replace browser url, ie a redirection and current URL not
saved in session history and back button will not return to it."))
(defmethod url-replace ((obj clog-window) replace-url)
(defmethod url-replace ((obj clog-location) replace-url)
(execute obj (format nil "replace('~A')" replace-url)))
;;;;;;;;;;;;;;;;
;; url-assign ;;
;;;;;;;;;;;;;;;;
(defgeneric url-assign (clog-window assign-url)
(defgeneric url-assign (clog-location assign-url)
(:documentation "Assign browser url."))
(defmethod url-assign ((obj clog-window) assign-url)
(defmethod url-assign ((obj clog-location) assign-url)
(execute obj (format nil "assign('~A')" assign-url)))