(write-line 1 (read-file "tmpl/unauthorized.http"))
(exit 0))
-(define (role-script ROLE)
+;; Determine actual script name respecting given role, if any.
+(define (role-script (ROLE "."))
(let ((CMD (and (regex "([^/]*).cgi$" (main-args 0) 0) $1)))
- (if (= "." ROLE) (string CMD ".lsp")
- (format "%s/%s.lsp" ROLE CMD))))
+ (if (= "." ROLE) (string CMD ".lsp") (format "%s/%s.lsp" ROLE CMD))))
(setf
- ROLES (map (fn (x) (parse x ":")) (parse (read-file "roles.txt") "\n"))
REMOTE_USER (and (regex "([^:]+):" (base64-dec (6 AUTH)) 0) $1)
- ROLE (or (lookup REMOTE_USER ROLES) "child")
- SCRIPT (role-script ROLE)
+ SCRIPT (role-script)
)
(env "REMOTE_USER" REMOTE_USER)
(env "ROLE" ROLE)