blob: 35ec80f76baa04a56437ae1e4efd549ebcc56f80 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
#!/usr/local/bin/txr
@(next :args)
@(load "config")
@(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")
@(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))
|