X-Git-Url: https://git.rrq.au/?a=blobdiff_plain;f=manager%2Fbasic_login.lsp;h=f491a9eee47ead9952defe603dd782c9f6792e76;hb=45a86f2b3e502e41dda26426e6e1e60ba088006f;hp=7231ef0e0e7f7b3b62d4f5965a3655dafd7d5497;hpb=10d5ff6dcc2a35e5d690216edc16950e4fb022a9;p=rrq%2Fhourglass.git diff --git a/manager/basic_login.lsp b/manager/basic_login.lsp index 7231ef0..f491a9e 100644 --- a/manager/basic_login.lsp +++ b/manager/basic_login.lsp @@ -30,16 +30,14 @@ (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)