Changeset 2424
- Timestamp:
- 01/30/08 14:02:24 (1 year ago)
- Files:
-
- branches/trunk-reorg/bknr/datastore/src/data/blob.lisp (modified) (2 diffs)
- branches/trunk-reorg/bknr/modules/bug/bug-handlers.lisp (modified) (10 diffs)
- branches/trunk-reorg/bknr/modules/mail/mailinglist-handlers.lisp (modified) (1 diff)
- branches/trunk-reorg/bknr/modules/mail/register-handler.lisp (modified) (1 diff)
- branches/trunk-reorg/bknr/modules/tamagotchi/tamagotchi-handlers.lisp (modified) (1 diff)
- branches/trunk-reorg/bknr/modules/text/article-handlers.lisp (modified) (2 diffs)
- branches/trunk-reorg/bknr/modules/text/billboard-handlers.lisp (modified) (5 diffs)
- branches/trunk-reorg/bknr/modules/text/blog-handlers.lisp (modified) (2 diffs)
- branches/trunk-reorg/bknr/modules/text/paste-handlers.lisp (modified) (2 diffs)
- branches/trunk-reorg/bknr/modules/text/wiki-handlers.lisp (modified) (2 diffs)
- branches/trunk-reorg/bknr/modules/url/edit-url-handlers.lisp (modified) (3 diffs)
- branches/trunk-reorg/bknr/web/src/images/image-handlers.lisp (modified) (1 diff)
- branches/trunk-reorg/bknr/web/src/images/import-images-handler.lisp (modified) (1 diff)
- branches/trunk-reorg/bknr/web/src/packages.lisp (modified) (1 diff)
- branches/trunk-reorg/bknr/web/src/web/authorizer.lisp (modified) (2 diffs)
- branches/trunk-reorg/bknr/web/src/web/event-log.lisp (modified) (2 diffs)
- branches/trunk-reorg/bknr/web/src/web/handlers.lisp (modified) (4 diffs)
- branches/trunk-reorg/bknr/web/src/web/sessions.lisp (modified) (3 diffs)
- branches/trunk-reorg/bknr/web/src/web/tags.lisp (modified) (1 diff)
- branches/trunk-reorg/bknr/web/src/web/user-handlers.lisp (modified) (4 diffs)
- branches/trunk-reorg/projects/quickhoney/src/handlers.lisp (modified) (1 diff)
- branches/trunk-reorg/projects/quickhoney/src/init.lisp (modified) (1 diff)
- branches/trunk-reorg/projects/quickhoney/src/webserver.lisp (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
branches/trunk-reorg/bknr/datastore/src/data/blob.lisp
r2045 r2424 169 169 (write (n-blobs-per-directory subsystem) :stream s)))) 170 170 171 (defun delete-orphaned-blob-files ( )171 (defun delete-orphaned-blob-files (&optional (cold-run t)) 172 172 (dolist (blob-pathname (directory (merge-pathnames (make-pathname :directory '(:relative :wild-inferiors)) 173 173 (store-blob-root-pathname)))) … … 178 178 (labels ((delete-orphan (pathname) 179 179 (handler-case 180 (delete-file pathname) 180 (if cold-run 181 (format t "cold run, not deleting ~A~%" pathname) 182 (delete-file pathname)) 181 183 (error (e) 182 184 (warn "can't delete file ~A: ~A" pathname e))))) branches/trunk-reorg/bknr/modules/bug/bug-handlers.lisp
r2417 r2424 22 22 (defmethod handle-object-form ((handler bug-tracker-handler) action tracker) 23 23 (with-bknr-page (:title #?"bug-tracker for $((mailinglist-name tracker))") 24 (when (admin-p (bknr- request-user))24 (when (admin-p (bknr-session-user)) 25 25 (html ((:a :href (format nil "/edit-bug-tracker/~a" (store-object-id tracker))) 26 26 "edit bug-tracker"))) … … 28 28 29 29 (defmethod file-bug-report ((handler bug-tracker-handler) tracker) 30 (let ((user (bknr- request-user)))30 (let ((user (bknr-session-user))) 31 31 ;; XXX check user rights 32 32 (with-query-params (name status priority description) … … 59 59 (defmethod handle-object-form ((handler bug-report-handler) action report) 60 60 (with-bknr-page (:title #?"bug-report") 61 (when (or (equal (bknr- request-user)61 (when (or (equal (bknr-session-user) 62 62 (bug-report-handler report)) 63 (admin-p (bknr- request-user)))63 (admin-p (bknr-session-user))) 64 64 (html ((:a :href (format nil "/edit-bug-report/~a" (store-object-id report))) 65 65 "edit bug-report"))) … … 69 69 report) 70 70 (if report 71 (let ((user (bknr- request-user)))71 (let ((user (bknr-session-user))) 72 72 (with-query-params (title text) 73 73 (let ((article (make-object 'article … … 115 115 (action (eql :save)) 116 116 tracker) 117 (if (admin-p (bknr- request-user))117 (if (admin-p (bknr-session-user)) 118 118 (with-query-params (name email description) 119 119 (change-slot-values tracker 'name name 'email email 'description description) … … 145 145 (action (eql :save)) 146 146 report) 147 (if (or (admin-p (bknr- request-user))148 (equal (bknr- request-user)147 (if (or (admin-p (bknr-session-user)) 148 (equal (bknr-session-user) 149 149 (bug-report-handler report))) 150 150 (with-query-params (name status priority description) … … 172 172 (action (eql :close)) 173 173 report) 174 (if (or (admin-p (bknr- request-user))175 (equal (bknr- request-user)174 (if (or (admin-p (bknr-session-user)) 175 (equal (bknr-session-user) 176 176 (bug-report-handler report))) 177 177 (progn … … 188 188 (action (eql :reopen)) 189 189 report) 190 (if (or (admin-p (bknr- request-user))191 (equal (bknr- request-user)190 (if (or (admin-p (bknr-session-user)) 191 (equal (bknr-session-user) 192 192 (bug-report-handler report))) 193 193 (progn … … 204 204 (action (eql :delete)) 205 205 report) 206 (if (or (admin-p (bknr- request-user))207 (equal (bknr- request-user)206 (if (or (admin-p (bknr-session-user)) 207 (equal (bknr-session-user) 208 208 (bug-report-handler report))) 209 209 (progn … … 221 221 report) 222 222 (if (or (null (bug-report-handler report)) 223 (admin-p (bknr- request-user)))224 (progn 225 (change-slot-values report 'handler (bknr- request-user))223 (admin-p (bknr-session-user))) 224 (progn 225 (change-slot-values report 'handler (bknr-session-user)) 226 226 (call-next-method)) 227 227 (with-bknr-page (:title #?"Edit bug report") branches/trunk-reorg/bknr/modules/mail/mailinglist-handlers.lisp
r2417 r2424 107 107 (let ((user (find-user email))) 108 108 (if user 109 (if (admin-p (bknr- request-user))109 (if (admin-p (bknr-session-user)) 110 110 (html-subscription-info user) 111 111 (progn branches/trunk-reorg/bknr/modules/mail/register-handler.lisp
r2417 r2424 110 110 :subscribe-mailinglist mailinglist)) 111 111 (website-url (and mailinglist (mailinglist-website-url mailinglist)))) 112 (if (admin-p (bknr- request-user))112 (if (admin-p (bknr-session-user)) 113 113 (progn 114 114 (confirm-registration registration) branches/trunk-reorg/bknr/modules/tamagotchi/tamagotchi-handlers.lisp
r2417 r2424 16 16 (cond ((null tamagotchi) t) 17 17 ((null (tamagotchi-owner tamagotchi)) t) 18 ((equal (bknr- request-user) (tamagotchi-owner tamagotchi)) t)18 ((equal (bknr-session-user) (tamagotchi-owner tamagotchi)) t) 19 19 (t nil))))) 20 20 branches/trunk-reorg/bknr/modules/text/article-handlers.lisp
r2417 r2424 42 42 (index-article article)) 43 43 (setf article (make-object 'article 44 :author (bknr- request-user)44 :author (bknr-session-user) 45 45 :subject subject 46 46 :text text))) … … 105 105 (expires (parse-date-field "expiration"))) 106 106 (with-query-params (subject text layout) 107 (let ((snippet (make-object 'snippet :author (bknr- request-user)107 (let ((snippet (make-object 'snippet :author (bknr-session-user) 108 108 :subject (or subject "") 109 109 :time (get-universal-time) branches/trunk-reorg/bknr/modules/text/billboard-handlers.lisp
r2417 r2424 20 20 21 21 (defun list-billboards-page () 22 (let ((may-edit (admin-p (bknr- request-user))))22 (let ((may-edit (admin-p (bknr-session-user)))) 23 23 (with-bknr-page (:title "billboards") 24 24 (html … … 54 54 (let ((billboard (parse-url))) 55 55 (with-query-params (new show-all delete) 56 (let ((may-edit (admin-p (bknr- request-user))))56 (let ((may-edit (admin-p (bknr-session-user)))) 57 57 (setf billboard (find-billboard (or billboard *default-billboard*))) 58 58 (if delete … … 63 63 (if (and new may-edit) 64 64 (let ((article (make-object 'article 65 :author (bknr- request-user))))65 :author (bknr-session-user)))) 66 66 (billboard-add-article billboard article) 67 67 (redirect (format nil "/edit-article/~a" (store-object-id article)))) … … 76 76 for article in (billboard-articles billboard) 77 77 do (when (or show-all 78 (not (article-read article (bknr- request-user))))78 (not (article-read article (bknr-session-user)))) 79 79 (setf shown t) 80 80 (html … … 107 107 (html 108 108 ((:input :type "submit" :name "show-all" :value "show-all")))) 109 (when (admin-p (bknr- request-user))109 (when (admin-p (bknr-session-user)) 110 110 (html 111 111 ((:input :type "submit" :name "new" :value "new")))))))))))) branches/trunk-reorg/bknr/modules/text/blog-handlers.lisp
r2417 r2424 86 86 87 87 (defmethod authorized-p ((handler edit-blog-handler)) 88 (let ((user (bknr- request-user))88 (let ((user (bknr-session-user)) 89 89 (blog (object-handler-get-object handler))) 90 90 (if blog … … 116 116 (let ((article (make-object 'blog-article 117 117 :time (get-universal-time) 118 :author (bknr- request-user)118 :author (bknr-session-user) 119 119 :subject subject 120 120 :text text branches/trunk-reorg/bknr/modules/text/paste-handlers.lisp
r2417 r2424 43 43 (if (and subject text) 44 44 (let ((paste (make-object 'paste 45 :author (bknr- request-user)45 :author (bknr-session-user) 46 46 :subject subject 47 47 :time (get-universal-time) … … 60 60 (with-query-params (text lisp) 61 61 (let ((annotation (make-object 'keywords-article 62 :author (bknr- request-user)62 :author (bknr-session-user) 63 63 :subject "" 64 64 :time (get-universal-time) branches/trunk-reorg/bknr/modules/text/wiki-handlers.lisp
r2417 r2424 35 35 36 36 (defmethod authorized-p ((handler edit-wiki-handler)) 37 (not (anonymous-p (bknr- request-user))))37 (not (anonymous-p (bknr-session-user)))) 38 38 39 39 (defmethod handle-object-form ((handler edit-wiki-handler) … … 54 54 (let ((version (make-version (html-quote text) 55 55 :comment (html-quote comment) 56 :author (bknr- request-user)56 :author (bknr-session-user) 57 57 :date (get-universal-time)))) 58 58 (if article branches/trunk-reorg/bknr/modules/url/edit-url-handlers.lisp
r2417 r2424 10 10 11 11 (defmethod authorized-p ((handler form-handler)) 12 (not (equal (bknr- request-user) (find-user "anonymous"))))12 (not (equal (bknr-session-user) (find-user "anonymous")))) 13 13 14 14 #+(or) … … 36 36 (ensure-form-field keywords) 37 37 (if (and cache 38 (not (user-has-flag (bknr- request-user) :cache)))38 (not (user-has-flag (bknr-session-user) :cache))) 39 39 (error (make-condition 'form-not-authorized-condition 40 40 :reason "You do not have the right to cache objects"))) 41 41 42 42 (when cache 43 (make-cached-url-from-url url :user (bknr- request-user) :depth 143 (make-cached-url-from-url url :user (bknr-session-user) :depth 1 44 44 :force nil)) 45 45 … … 56 56 :keywords keywords 57 57 :date (get-universal-time) 58 :submitter (bknr- request-user))))58 :submitter (bknr-session-user)))) 59 59 (declare (ignore submission)) 60 60 (redirect (if redirect url "/url"))))) branches/trunk-reorg/bknr/web/src/images/image-handlers.lisp
r2417 r2424 87 87 (with-query-params (name keyword) 88 88 (let* ((image (import-image file-pathname 89 :user (bknr- request-user)89 :user (bknr-session-user) 90 90 :keywords (list keyword) 91 91 :keywords-from-dir nil)) branches/trunk-reorg/bknr/web/src/images/import-images-handler.lisp
r2417 r2424 36 36 (import-directory spool-dir 37 37 :class-name class-name 38 :user (bknr- request-user)38 :user (bknr-session-user) 39 39 :keywords keywords 40 40 :spool (import-handler-spool-dir handler) branches/trunk-reorg/bknr/web/src/packages.lisp
r2420 r2424 379 379 380 380 #:host-name 381 #:bknr-request-user 382 #:bknr-request 383 #:bknr-request-session 381 #:bknr-session 384 382 #:*session* 385 383 #:anonymous-session branches/trunk-reorg/bknr/web/src/web/authorizer.lisp
r2417 r2424 20 20 (defun session-from-request () 21 21 "check whether the request has a valid session id in either the bknr-sessionid cookie or query parameter" 22 (start-session)23 22 (session-value 'bknr-session)) 24 23 … … 35 34 (defmethod authorize ((authorizer bknr-authorizer)) 36 35 ;; Catch any errors that occur during request body processing 37 (start-session)38 36 (handler-case 39 37 (when (session-value 'bknr-session) branches/trunk-reorg/bknr/web/src/web/event-log.lisp
r2417 r2424 63 63 print-count) ;; maximum number of events to print 64 64 (when (and message (not (equal "" message))) 65 (make-event 'message-event :from (bknr- request-user) :text message))65 (make-event 'message-event :from (bknr-session-user) :text message)) 66 66 ;; Parameter parsing, will move to with-query-params soon 67 67 (if (and last-printed (not (equal "" last-printed))) … … 79 79 (list (find-class (find-symbol show-only-class (find-package "bknr"))))) 80 80 (selected-classes (request-query)) 81 (mapcar #'find-class (get-user-preferences (bknr- request-user) :event-log-classes))81 (mapcar #'find-class (get-user-preferences (bknr-session-user) :event-log-classes)) 82 82 (default-selected-classes)))) 83 83 (unless show-only-class 84 (set-user-preferences (bknr- request-user) :event-log-classes (mapcar #'class-name selected-classes)))84 (set-user-preferences (bknr-session-user) :event-log-classes (mapcar #'class-name selected-classes))) 85 85 ;; selected-classes contains the list of event classes to print. 86 86 (html branches/trunk-reorg/bknr/web/src/web/handlers.lisp
r2420 r2424 156 156 (html ((:div :id "session-info") 157 157 "local time is " (:princ-safe (format-date-time)) 158 (if (bknr- request-user)159 (html ", logged in as " (html-link (bknr- request-user)))158 (if (bknr-session-user) 159 (html ", logged in as " (html-link (bknr-session-user))) 160 160 (html ", not logged in"))))) 161 161 … … 217 217 (if (and require-user-flag 218 218 (not (find require-user-flag 219 (user-flags (bknr- request-user)))))219 (user-flags (bknr-session-user))))) 220 220 nil 221 221 t))) 222 222 223 223 (defmethod invoke-handler ((handler page-handler)) 224 (start-session) 225 (unless (session-value 'bknr-session) 226 (setf (session-value 'bknr-session) 227 (make-instance 'bknr-session :user (find-user "anonymous")))) 224 228 (let* ((*website* (page-handler-site handler)) 225 (*session* (bknr-request-session))226 (*user* (bknr-request-user))227 229 (*req-var-hash* (or *req-var-hash* 228 230 (make-hash-table)))) … … 412 414 413 415 (defmethod authorized-p ((handler admin-only-handler)) 414 (admin-p (bknr- request-user)))416 (admin-p (bknr-session-user))) 415 417 416 418 (defclass xml-handler () … … 488 490 489 491 (defmethod import-handler-import-pathname ((handler import-handler)) 490 (let* ((user (bknr- request-user))492 (let* ((user (bknr-session-user)) 491 493 (spool-dir (merge-pathnames (make-pathname 492 494 :directory (list :relative (user-login user))) branches/trunk-reorg/bknr/web/src/web/sessions.lisp
r2417 r2424 3 3 (defclass bknr-session () 4 4 ((id :initarg :id :reader bknr-session-id :initform (get-universal-time)) 5 (user :initarg :user :reader bknr-session-user :initform nil)5 (user :initarg :user) 6 6 (host :initarg :host :reader bknr-session-host :initform nil))) 7 7 8 8 (defmethod print-object ((session bknr-session) stream) 9 9 (print-unreadable-object (session stream :type t :identity t) 10 (format stream "user ~A host ~A" (bknr-session-user session) (bknr-session-host session)) 10 (with-slots (user host) session 11 (format stream "user ~A host ~A" user host)) 11 12 session)) 12 13 13 (def method bknr-session-user ((user (eql nil)))14 nil)14 (defun bknr-session () 15 (session-value 'bknr-session)) 15 16 16 (defun bknr-request-user () 17 (bknr-session-user (session-value 'bknr-session))) 18 19 (defun bknr-request-session () 20 (session-value 'bknr-session)) 17 (defun bknr-session-user () 18 (slot-value (bknr-session) 'user)) 21 19 22 20 (defun do-log-request () … … 24 22 (return-from do-log-request) 25 23 #+(or) 26 (let* ((session (bknr- request-session))24 (let* ((session (bknr-session)) 27 25 (user (bknr-session-user session)) 28 26 (host (bknr-session-host session)) … … 46 44 (format *debug-io* "Error: ~A~%" error) 47 45 #+(or) 48 (let* ((session (bknr- request-session))46 (let* ((session (bknr-session)) 49 47 (user (bknr-session-user session)) 50 48 (host (bknr-session-host session)) branches/trunk-reorg/bknr/web/src/web/tags.lisp
r2417 r2424 227 227 :text name))))) 228 228 (when (and (website-admin-navigation *website*) 229 (admin-p (bknr- request-user)))229 (admin-p (bknr-session-user))) 230 230 (html ((:div :class "navi") 231 231 "admin: " branches/trunk-reorg/bknr/web/src/web/user-handlers.lisp
r2417 r2424 40 40 (defmethod authorized-p ((handler user-handler)) 41 41 (let* ((user (object-handler-get-object handler)) 42 (web-user (bknr- request-user))42 (web-user (bknr-session-user)) 43 43 (action (query-param "action")) 44 44 (action-keyword (when action (make-keyword-from-string action)))) … … 88 88 (defmethod handle-object-form ((handler user-handler) (action (eql :save)) user) 89 89 (unless user 90 (setf user (bknr- request-user)))90 (setf user (bknr-session-user))) 91 91 (when user 92 92 (with-query-params (password password-repeat … … 99 99 (change-slot-values user 'email email 'full-name full-name))) 100 100 101 (when (admin-p (bknr- request-user))101 (when (admin-p (bknr-session-user)) 102 102 (let* ((all-flags (all-user-flags)) 103 103 (set-flags (keywords-from-query-param-list (query-param-list "flags"))) … … 113 113 114 114 (defmethod handle-object-form ((handler user-handler) (action (eql :delete)) user) 115 (unless (admin-p (bknr- request-user))115 (unless (admin-p (bknr-session-user)) 116 116 (error 'unauthorized-error)) 117 117 (when user branches/trunk-reorg/projects/quickhoney/src/handlers.lisp
r2417 r2424 76 76 (defmethod handle ((handler login-js-handler)) 77 77 (format *html-stream* "parent.login_complete(~A, ~S);~%" 78 (if (admin-p (bknr- request-user)) "true" "false")79 (user-login (bknr- request-user))))78 (if (admin-p (bknr-session-user)) "true" "false") 79 (user-login (bknr-session-user)))) 80 80 81 81 (defclass clients-js-handler (javascript-handler page-handler) branches/trunk-reorg/projects/quickhoney/src/init.lisp
r2419 r2424 3 3 (defun startup () 4 4 (setq cxml::*default-catalog* '("/home/hans/share/xml/catalog")) 5 ;; XXX hack hack hack 6 (mapcar #'cl-gd::load-foreign-library 7 '("/usr/lib/libcrypto.so" "/usr/lib/libssl.so" "/usr/local/lib/libgd.so" "/home/hans/bknr-svn/thirdparty/cl-gd/cl-gd-glue.so")) 5 8 (when *store* 6 9 (close-store)) branches/trunk-reorg/projects/quickhoney/src/webserver.lisp
r2419 r2424 3 3 4 4 (enable-interpol-syntax) 5 6 (defclass admin-handler (admin-only-handler page-handler) 7 ()) 8 9 (defmethod handle ((handler admin-handler)) 10 (with-bknr-page (:title "CMS") 11 "Please choose an administration activity from the menu above")) 5 12 6 13 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; … … 24 31 ("/upload-button" upload-button-handler) 25 32 ("/rss" rss-handler) 33 ("/admin" admin-handler) 26 34 ("/" redirect-handler 27 35 :to "/frontpage")
