aboutsummaryrefslogtreecommitdiffhomepage
path: root/session.lisp
diff options
context:
space:
mode:
Diffstat (limited to 'session.lisp')
-rw-r--r--session.lisp11
1 files changed, 9 insertions, 2 deletions
diff --git a/session.lisp b/session.lisp
index 770bc8d..0ad10c2 100644
--- a/session.lisp
+++ b/session.lisp
@@ -2,7 +2,12 @@
(in-package :vampire)
-;;; session parameter keys
+;;; SESSION CLASS
+
+(defclass/bknr session (keyed)
+ ((user :std (error "Sessions must be associated with users."))))
+
+;;; SESSION PARAMETER KEYS
(defparameter +session-key+ "vampire-session-key"
"Stored in the browser's local storage")
@@ -19,7 +24,9 @@
(setf (storage-element window :local +session-key+) (jonathan:to-json val)))
(defun session-user (clog-obj)
- (user-with-key (session-key (window (connection-body clog-obj)))))
+ (when-let (obj (object-with-key (session-key (window (connection-body clog-obj)))))
+ (when (typep obj 'session)
+ (user obj))))
(defun cur-playlist-ctl (obj)
(connection-data-item obj +playlist-connection-key+))