diff options
Diffstat (limited to 'main.txr')
-rwxr-xr-x | main.txr | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/main.txr b/main.txr new file mode 100755 index 0000000..cc364c7 --- /dev/null +++ b/main.txr @@ -0,0 +1,79 @@ +#!/usr/local/bin/txr +@(next :args) +@(bind debug-enable t) +@(load "logging") +@(load "headers") +@(load "auth") +@(load "session") +@(load "lockdir") +@(load "random") +@(load "aliases") +@(load "login-form") +@(load "error-form") +@(load "alias-list-form") +@(load "edit-memo-form") +@(load "startup") +@(bind csslink "") +@(do (randomize)) +@(startup domain) +@(next :env) +@(gather :vars (clientip (cookie-userid nil) (cookie-sessid nil))) +REMOTE_ADDR=@clientip +@(sess-cookie cookie-userid cookie-sessid) +@(end) +@(check-session session-valid-p cookie-userid cookie-sessid clientip) +@(next :env) +@(if session-valid-p) +@ (skip) +@ (cases) +QUERY_STRING=logout +@ (remove-session cookie-userid) +@ (login-form "Logged out; you may log in again.") +@ (or) +QUERY_STRING=update-aliases +@ (next *stdin*) +@postdata +@ (cases) +@ (update-aliases cookie-userid postdata) +@ (alias-list-form cookie-userid) +@ (or) +@ (error-form "Invalid input" `Unable to parse POST data: @postdata`) +@ (end) +@ (or) +QUERY_STRING=edit=@{edit-alias} +@ (edit-memo-form cookie-userid edit-alias) +@ (or) +QUERY_STRING=update-memo&@{edit-alias} +@ (cases) +@ (next *stdin*) +memo=@{new-memo}&@(skip) +@ (update-memo cookie-userid edit-alias new-memo) +@ (or) +@ (error-form "Invalid input" `Unable to parse POST data`) +@ (end) +@ (or) +QUERY_STRING=@(skip) +@ (alias-list-form cookie-userid) +@ (end) +@(else) +@ (skip) +@ (cases) +QUERY_STRING=auth +@ (cases) +@ (next *stdin*) +userid=@userid&password=@password +@ (set password @(url-decode password)) +@ (auth userid password) +@ (ensure-session userid clientip) +@ (alias-list-form userid) +@ (or) +@ (login-form "Invalid login; try again!") +@ (end) +@ (or) +QUERY_STRING=@(skip) +@ (login-form @(if cookie-userid + "Invalid or expired session; Please log in." + "Please log in.")) +@ (end) +@(end) +@(do (save-random-state)) |