Maybe fixing session issues.
This commit is contained in:
31
simple.scm
31
simple.scm
@@ -187,23 +187,36 @@
|
||||
|
||||
(define (define-page path contents #!key css title doctype headers charset
|
||||
(method 'GET) use-session) ;; for define-session-page
|
||||
(##sys#check-closure contents 'define-page)
|
||||
(unless (procedure? contents) (error "contents must be a procedure"))
|
||||
(add-resource!
|
||||
path
|
||||
;; args is path + any procedure match args
|
||||
(lambda args
|
||||
(sid (get-sid use-session))
|
||||
(server-refresh-session!)
|
||||
;; (sid (get-sid use-session))
|
||||
;; (server-refresh-session!)
|
||||
(if (use-session? use-session)
|
||||
(if ((page-access-control) (car args))
|
||||
(begin
|
||||
;; TODO is this a duplicate of the above?
|
||||
(maybe-create/refresh-session! use-session)
|
||||
(send-response
|
||||
body:
|
||||
(with-output-to-string
|
||||
(lambda ()
|
||||
(apply contents (cdr args))))))
|
||||
;; (maybe-create/refresh-session! use-session)
|
||||
(handle-exceptions
|
||||
exn
|
||||
(if ((condition-predicate 'redirect) exn)
|
||||
(let ((new-uri ((condition-property-accessor 'redirect 'uri) exn)))
|
||||
(send-response
|
||||
body:
|
||||
(string-append
|
||||
"<html><head><meta http-equiv=\"refresh\" content=\"0; URL="
|
||||
(cond ((string? new-uri) new-uri)
|
||||
((uri-reference? new-uri) (uri->string new-uri))
|
||||
(else (abort "invalid URI construct")))
|
||||
"\"></head></html")))
|
||||
(abort exn))
|
||||
(send-response
|
||||
body:
|
||||
(with-output-to-string
|
||||
(lambda ()
|
||||
(apply contents (cdr args)))))))
|
||||
((page-access-denied-message) path))))
|
||||
method))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user