diff options
| author | ckonstanski <ckonstanski@pippiandcarlos.com> | 2018-02-06 21:42:54 -0700 |
|---|---|---|
| committer | ckonstanski <ckonstanski@pippiandcarlos.com> | 2018-02-06 21:42:54 -0700 |
| commit | 142166df54eda65925921799a4bb3e7f6cdaba48 (patch) | |
| tree | 5dc70e16bd6719079651925b5c5769211a3bf27e /service/auth-service.lisp | |
initial commit
Diffstat (limited to 'service/auth-service.lisp')
| -rw-r--r-- | service/auth-service.lisp | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/service/auth-service.lisp b/service/auth-service.lisp new file mode 100644 index 0000000..6cbc134 --- /dev/null +++ b/service/auth-service.lisp @@ -0,0 +1,21 @@ +;;; -*- Mode: Lisp; Syntax: ANSI-Common-Lisp; Base: 10 -*- +(declaim (optimize (speed 0) (safety 3) (debug 3))) + +(in-package #:music-dispensary) + +;; ========================================================================== ;; + +(defclass auth-service (rest-service) + () + (:documentation "")) + +(defmethod initialize-instance :after ((auth-service auth-service) &key) + (when (not (string= (session-value :permissions) "admin")) + (setf (location auth-service) "home") + (setf (errormsg auth-service) "You are not authorized to access this resource."))) + +(defmacro with-auth ((instance form-class) &body body) + `(let ((,instance (make-instance ',form-class))) + (when (null (errormsg ,instance)) + ,@body) + (objects-to-json `(,,instance)))) |
