summaryrefslogtreecommitdiff
path: root/user/HTC/admin.htc
diff options
context:
space:
mode:
Diffstat (limited to 'user/HTC/admin.htc')
-rw-r--r--user/HTC/admin.htc143
1 files changed, 143 insertions, 0 deletions
diff --git a/user/HTC/admin.htc b/user/HTC/admin.htc
new file mode 100644
index 0000000..c1369e9
--- /dev/null
+++ b/user/HTC/admin.htc
@@ -0,0 +1,143 @@
1\clearance{ADM}
2\on.clear{SYS}
3{\cond{T.group}{\user.group}\cond{T.group2}{\user.group}}
4{\const{T.group}{\user.group}\const{T.group2}{\user.group}}
5\cond{T.ID}{0}
6\cond{T.EDIT}{0}
7\cond{T.email}{}
8\cond{T.name}{}
9\cond{T.cmd}{}
10\ldef{uclear}{x}{\forall{ii}{\1}{[ii left ":"] }}
11\page{
12 \db{USERS}{
13 [groups:=\getgroups];
14 [users:=\query{\allowed{\T.group}}{[UID] }];
15 \find.rec{\T.ID}{
16 [this:=users which \T.ID];
17 \if(this>1){\href{\this?ID=[users nth (this-1)]}{Prev}|};
18 \href{\this}{List};
19 \if(this<count users){|\href{\this?ID=[users nth (this+1)]}{Next}}
20 \form{
21 \variable{ID}(UID);
22 \if{\T.EDIT}{
23 \table{bgcolor=#dddddd cellspacing=4 cellpadding=4}{
24 \tr{\td{align=right}{User ID:}\td(UID)}
25 \tr{\td{align=right}{Alias:}\td{\input{alias}{16}(ALIAS)}}
26 \tr{\td{align=right}{Name:}\td{\input{name}{40}(NAME)}}
27 \tr{\td{align=right}{E-mail:}\td{\input{email}{64}(EMAIL)}}
28 }
29 \button{Update}
30 }{
31 \table{bgcolor=#dddddd cellspacing=4 cellpadding=4}{
32 \tr{\td{align=right}{User ID:}\td(UID)}
33 \tr{\td{align=right}{Alias:}\td{\href{\req.uri?ID=[UID]&EDIT=1}(ALIAS)}}
34 \tr{\td{align=right}{Name:}\td(NAME)}
35 \tr{\td{align=right}{E-mail:}\td{\href{\req.uri?ID=[UID]&EDIT=1}(EMAIL)}}
36 \tr{\td{align=right}{Group:}\td(GROUP)}
37 \tr{\td{align=right}{Clearance:}\td{\uclear(ACCESS)}}
38 }
39 \on.clear{ROOT}{
40 \select{group}{
41 \forall{i}(groups){\option{\if(i eq \T.group){selected}}(i)(i)}
42 };
43 \button{+}\button{-}\button{=}
44 \indent{3}\input{group2}{8}\button{++}
45 \if(count ACCESS <= 1){\button{DELETE}}
46 }{
47 \button{\if(\uclear(ACCESS) which \T.group){-}{+} \T.group}
48 }
49 }
50 }
51 }{
52 \h1{Admin \T.group}
53 \form{
54 \on.clear{SYS}{
55 \select{group}{
56 \on.clear{ROOT}{
57 \forall{ii}(groups){\option{\if(ii eq \T.group){selected}}(ii)(ii)}
58 \option{\if(\T.group eq ""){selected}}{}{none}
59 }{
60 \forall{ii}{\user.clear}{
61 \option{\if(ii eq \T.group){selected}}(ii)(ii)
62 }
63 }
64 }
65 \button{Select Group}
66 \indent{3}
67 }
68 \input{email}{24}
69 \indent{2}
70 \button{Add User}
71 }
72 <p>
73 \table{
74 \tr{
75 \td{width=10%}{\bf{ID}}
76 \td{width=10%}{\bf{Alias}}
77 \td{width=40%}{\bf{Name}}
78 \td{width=10%}{\bf{GROUP}}
79 \td{width=30%}{\bf{CLEAR}}
80 }
81 \db{USERS}{
82 \query{\allowed{\T.group}}{
83 \tr{
84 \td{\href{\req.uri?ID=[UID]}(UID)};
85 \td{\href{\req.uri?ID=[UID]&EDIT=1}(ALIAS)};
86 \td(NAME);
87 \td(GROUP);
88 \td{\uclear(ACCESS)}
89 }
90 }
91 }
92 }
93 }
94 }
95}
96\onpost{
97 \switch(first \T.cmd)
98 {++}{
99 \log{addclear \T.group2 for \T.ID};
100 \su{\T.ID}{\user.access.add{\T.group2}\user.update};
101 \redirect{\this?ID=\T.ID}
102 }
103 {+}{
104 \log{addclear \T.group for \T.ID};
105 \su{\T.ID}{\user.access.add{\T.group}\user.update};
106 \redirect{\this?ID=\T.ID}
107 }
108 {-}{
109 \log{remclear \T.group for \T.ID};
110 \su{\T.ID}{\user.access.rem{\T.group}\user.update};
111 \redirect{\this?ID=\T.ID}
112 }
113 {=}{
114 \log{set group \T.group for \T.ID};
115 \on.clear{ROOT}{\su{\T.ID}{\user.group.set{\T.group}\user.update}}
116 \redirect{\this?ID=\T.ID}
117 }
118 {Update}{
119 \log{update name for \T.ID};
120 \su{\T.ID}{
121 \user.name.set{\T.name};
122 \user.alias.set{\T.alias};
123 \user.emails.set{\T.email};
124 \user.update;
125 }
126 \redirect{\this?ID=\T.ID}
127 }
128 {Select}{
129 \on.clear{SYS}{\user.group.set{\T.group}\user.update}
130 \redirect{\referer}
131 }
132 {DELETE}{
133 \log{DELETE \T.ID};
134 \on.clear{ROOT}{\remuser{\T.ID}};
135 \redirect{\referer}
136 }
137 {
138 [uid:=\getuser{\T.email}];
139 \log{add \T.group to [uid]};
140 \su(uid){\user.access.add{\T.group}\user.update};
141 \redirect{\this?ID=[uid]}
142 }
143}