Changeset 2547

Show
Ignore:
Timestamp:
02/18/08 13:34:17 (11 months ago)
Author:
hhubner
Message:

Make FIND-USER-FROM-REQUEST-PARAMS a GF again to support BOS.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/bknr/web/src/web/authorizer.lisp

    r2497 r2547  
    2828             (format s "Login failed")))) 
    2929 
    30 (defun find-user-from-request-parameters () 
    31   (with-query-params (__username __password) 
    32     (unless (and __username __password 
    33                  (not (equal __username "")) 
    34                  (not (equal __password ""))) 
    35       (return-from find-user-from-request-parameters nil)) 
    36     (let ((user (find-user __username))) 
     30(defgeneric find-user-from-request-parameters ((authorizer authorizer)) 
     31  (:documentation "Return the user that is associated with the current 
     32request or NIL.") 
     33  (:method ((authorizer bknr-authorizer)) 
     34    (with-query-params (__username __password) 
     35      (unless (and __username __password 
     36                   (not (equal __username "")) 
     37                   (not (equal __password ""))) 
     38        (return-from find-user-from-request-parameters nil)) 
     39      (let ((user (find-user __username))) 
    3740        (when (and user 
    3841                   (not (user-disabled user)) 
    3942                   (verify-password user __password)) 
    4043          (return-from find-user-from-request-parameters user))) 
    41     (error 'login-failure))) 
     44      (error 'login-failure)))) 
    4245 
    4346(defmethod authorize ((authorizer bknr-authorizer)) 
  • trunk/bknr/web/src/web/handlers.lisp

    r2522 r2547  
    284284  "Ensure that the BKNR-SESSION session variable is set and that it 
    285285belongs to the user that is specified in the request." 
    286   (let ((request-user (find-user-from-request-parameters))) 
     286  (let ((request-user (find-user-from-request-parameters (website-authorizer *website*)))) 
    287287    (unless (and (session-value 'bknr-session) 
    288                  (equal (bknr-session-user) 
    289                         (find-user-from-request-parameters))) 
     288                 (eq (bknr-session-user) request-user)) 
    290289      (setf (session-value 'bknr-session) 
    291290            (make-instance 'bknr-session :user (or request-user