Disable/enable user switch
[gwvp-mini.git] / gwvpmini / gwvpmini_admin.php
1 <?php
2
3 if(gwvpmini_isLoggedIn()) if(gwvpmini_isUserAdmin()) {
4         $MENU_ITEMS["20repos"]["text"] = "Administration";\r
5         $MENU_ITEMS["20repos"]["link"] = "$BASE_URL/admin";
6         $CALL_ME_FUNCTIONS["admin"] = "gwvpmini_AdminCallMe";
7 }
8
9
10
11 function gwvpmini_AdminCallMe()\r
12 {\r
13 \r
14         error_log("in admin callme");\r
15         if(isset($_REQUEST["q"])) {\r
16                 $query = $_REQUEST["q"];\r
17                 $qspl = explode("/", $query);\r
18                 if(isset($qspl[0])) {\r
19                         if($qspl[0] == "admin") {\r
20                                 if(isset($qspl[1])) {\r
21                                         if($qspl[1] == "user") {\r
22                                                 return "gwvpmini_AdminUserCreate";\r
23                                         }
24                                         if($qspl[1] == "changereg") {
25                                                 return "gwvpmini_ChangeRegistration";
26                                         }
27                                         if($qspl[1] == "changeconfirm") {
28                                                 return "gwvpmini_ChangeRegConfig";
29                                         }
30                                         if($qspl[1] == "changefromemail") {
31                                                 return "gwvpmini_ChangeFromAddress";
32                                         }
33                                         if($qspl[1] == "removeuser") {
34                                                 return "gwvpmini_RemoveUserPage";
35                                         }\r
36                                         if($qspl[1] == "confremoveuser") {
37                                                 return "gwvpmini_ConfRemoveUser";
38                                         }
39                                         if($qspl[1] == "switchenable") {
40                                                 return "gwvpmini_SwitchEnableUser";
41                                         }
42                                 } else {\r
43                                         error_log("i got here, where next?");\r
44                                         return "gwvpmini_AdminMainPage";\r
45                                 }\r
46                         } else return false;\r
47                 }\r
48                 else return false;\r
49         }\r
50 \r
51         return false;\r
52 }
53
54 function gwvpmini_RemoveUserPage()
55 {
56         gwvpmini_goMainPage("gwvpmini_RemoveUserPageBody");
57         
58 }
59
60 function gwvpmini_AdminMainPage()
61 {
62         gwvpmini_goMainPage("gwvpmini_AdminMainPageBody");
63 }
64
65 function gwvpmini_AdminMainPageBody()
66 {
67         global $BASE_URL;
68         global $can_register, $reg_reqs_confirm, $confirm_from_address;
69         
70         if($can_register) {
71                 $register = "Registration Enabled (<a href=\"$BASE_URL/admin/changereg\">Disable</a>)";
72         } else {
73                 $register = "Registration Disabled (<a href=\"$BASE_URL/admin/changereg\">Enable</a>)";
74         }
75         
76         if($reg_reqs_confirm) {
77                 $regconfirm = "Registration Requires Confirmation (<a href=\"$BASE_URL/admin/changeconfirm\">Disable</a>)";
78         } else {
79                 $regconfirm = "Registration Doesnt Require Confirmation (<a href=\"$BASE_URL/admin/changeconfirm\">Enable</a>)";
80         }
81         $totalusers = gwvpmini_GetNUsers();
82         echo "<table><tr valign=\"top\"><td>";
83         echo "<h2>Users - $totalusers</h2>";
84         echo "$register<br>$regconfirm<br>";
85         echo "<form method=\"post\" action=\"$BASE_URL/admin/changefromemail\">";
86         echo "Address emails are sent from <input type=\"text\" name=\"fromemail\" value=\"$confirm_from_address\"><input type=\"submit\" name=\"Update\" value=\"Update\"><br>";
87         echo "</form>"; 
88
89         echo "<table border=\"1\">";
90         echo "<tr><th>Username</th><th>Email Address</th><th>Full Name</th><th>Description</th><th>Status</th><th>Control</th></tr>";
91         foreach(gwvpmini_GetUsers() as $key => $val) {
92                 $id = $key;
93                 $un = $val["username"];
94                 $em = $val["email"];
95                 $fn = $val["fullname"];
96                 $ds = $val["desc"];
97                 $st_t = $val["status"];
98                 $st_l = $val["level"];
99                 
100                 $astat = "0";
101                 $cstat = "WTF";
102                 $level = "WTF";
103                 if($st_l == 0) $level = "User";
104                 if($st_l == 1) $level = "Admin";
105                 
106                 $status = "";
107                 if($st_t[0] == "1") {
108                         $status = ", disabled";
109                         $astat = 0;
110                         $cstat = "Enable";
111                 } else if ($st_t[0] == "0") {
112                         $astat = 1;
113                         $cstat = "Disable";
114                 } else  if($st_t[0] == "2") {
115                         $vl = explode(":", $st_t);
116                         error_log("VL: ".print_r($vl, true));
117                         $status = " Awaiting Confirmation (<a href=\"$BASE_URL/register/confirmreg/".$vl[1]."\">Confirm</a>)";
118                 }
119                 
120                 $st = "$level$status";
121                 
122                 $unlval = "<a href=\"$BASE_URL/user/$un\">$un</a>";
123                 echo "<tr><td>$unlval</td><td>$em</td><td>$fn</td><td>$ds</td><td>$st</td><td><a href=\"$BASE_URL/admin/removeuser/$id\">Remove</a> ";
124                 if ($st_t[0] == "0"||$st_t[0] == "1") echo "<a href=\"$BASE_URL/admin/switchenable/$astat/$id\">$cstat</a></td></tr>";
125                 else echo "</td></tr>";
126         }
127         
128         
129         echo "</table>";
130         echo "</td><td>";
131         echo "<h3>Create User</h3>";
132         echo "<form method=\"post\" action=\"$BASE_URL/admin/user/create\">";
133         echo "<table border=\"1\">";\r
134         echo "<tr><th>Username</th><td><input type=\"text\" name=\"username\"></td></tr>";
135         echo "<tr><th>Password</th><td><input type=\"password\" name=\"password\"></td></tr>";
136         echo "<tr><th>Confirm Password</th><td><input type=\"password\" name=\"confpassword\"></td></tr>";
137         echo "<tr><th>Full Name</th><td><input type=\"text\" name=\"fullname\"></td></tr>";
138         echo "<tr><th>Description</th><td><input type=\"text\" name=\"desc\"></td></tr>";
139         echo "<tr><th>Email</th><td><input type=\"text\" name=\"email\"></td></tr>";
140         echo "<tr><th>Confirm Email</th><td><input type=\"text\" name=\"confemail\"></td></tr>";
141         echo "<tr><th>Admin?</th><td><input type=\"checkbox\" name=\"isadmin\"></td></tr>";
142         echo "<tr><td colspan=\"2\"><input type=\"submit\" name=\"Add\" value=\"Add\"></td></tr>";
143         echo "</table>";
144         echo "</form>";
145         echo "</td></tr></table>";
146         
147         $totalrepos = gwvpmini_GetNRepos();
148         echo "<h2>Repo's - $totalrepos</h2>";
149         echo "<table border=\"1\">";
150         echo "<tr><th>Repo Name</th><th>Repo Desc</th><th>Owner</th><th>Control</th></tr>";
151         foreach(gwvpmini_GetRepos() as $key => $val) {
152                 $id = $key;
153                 $rn = $val["name"];
154                 $ds = $val["desc"];
155                 $ow = $val["owner"];
156                 echo "<tr><td><a href=\"$BASE_URL/view/$rn\">$rn</a></td><td>$ds</td><td>$ow</td><td><a href=\"$BASE_URL/admin/removeuser&id=$id\">Remove</a> <a href=\"$BASE_URL/admin/switchenable/$id\">Disable</a></td></tr>";
157         }
158         echo "</table>";
159 }\r
160
161
162 function gwvpmini_AdminUserCreate()
163 {
164         global $BASE_URL;
165         
166         $name = $_REQUEST["username"];
167         $pass1 = $_REQUEST["password"];
168         $pass2 = $_REQUEST["confpassword"];\r
169         $fname = $_REQUEST["fullname"];
170         $desc = $_REQUEST["desc"];
171         $email1 = $_REQUEST["email"];\r
172         $email2 = $_REQUEST["confemail"];
173         if(isset($_REQUEST["isadmin"])) $level = 1;
174         else $level = 0;\r
175         
176         $id = gwvpmini_GetUserId($name);
177         
178         if(!$id) {
179                 if($pass1 != $pass2) {
180                         gwvpmini_SendMessage("error", "Passwords dont match");
181                         header("Location: $BASE_URL/admin");
182                         return;
183                 }
184                 if($email1 != $email2) {
185                         gwvpmini_SendMessage("error", "Email Addresses dont match");
186                         header("Location: $BASE_URL/admin");
187                         return;
188                 }
189                 
190                 gwvpmini_AddUser($name, $pass1, $fname, $email1, $desc, $level, 0);
191                 gwvpmini_SendMessage("info", "User $fname created");
192         } else {
193                 gwvpmini_SendMessage("error", "User $name already exists, cant create");
194         }
195         
196         header("Location: $BASE_URL/admin");
197         return;
198         
199 }
200
201
202 function gwvpmini_ChangeRegistration()
203 {
204         global $can_register, $BASE_URL;
205         
206         if($can_register) {
207                 gwvpmini_setConfigVal("canregister", "0");
208                 gwvpmini_SendMessage("info", "Registration disabled");
209         } else {
210                 gwvpmini_setConfigVal("canregister", "1");\r
211                 gwvpmini_SendMessage("info", "Registration enabled");
212         }
213         
214         header("Location: $BASE_URL/admin");
215 }
216
217
218 function gwvpmini_ChangeRegConfig()
219 {
220         global $reg_reqs_confirm, $BASE_URL;\r
221         \r
222         if($reg_reqs_confirm) {\r
223                 gwvpmini_setConfigVal("registerrequiresconfirm", "0");\r
224                 gwvpmini_SendMessage("info", "Registration Confirmation disabled");\r
225         } else {\r
226                 gwvpmini_setConfigVal("registerrequiresconfirm", "1");\r
227                 gwvpmini_SendMessage("info", "Registration Confirmation enabled");\r
228         }\r
229         \r
230         header("Location: $BASE_URL/admin");
231 }
232
233 function gwvpmini_ChangeFromAddress()
234 {
235         global $BASE_URL;
236         
237         $newfrom = $_REQUEST["fromemail"];\r
238         \r
239         gwvpmini_setConfigVal("eamilfromaddress", "$newfrom");\r
240         gwvpmini_SendMessage("info", "Email from address updated to \"$newfrom\"");\r
241         \r
242         header("Location: $BASE_URL/admin");\r
243         
244 }
245
246 function gwvpmini_RemoveUserPageBody()
247 {
248         global $BASE_URL;
249         
250         $uid = -1;
251         if(isset($_REQUEST["q"])) {\r
252                 $query = $_REQUEST["q"];\r
253                 $qspl = explode("/", $query);\r
254                 if(isset($qspl[2])) {
255                         $uid = $qspl[2];\r
256                 }
257         }
258         
259         if($uid != -1) {
260                 $details = gwvpmini_GetUsers($uid, 1);
261                 $username = $details[$uid]["username"];
262                 $fullname = $details[$uid]["fullname"];
263                 $email = $details[$uid]["email"];
264                 $desc = $details[$uid]["desc"];
265                 
266                 error_log("user dets:".print_r($details, true));
267                 
268                 echo "<h2>Remove User?</h2>";
269                 echo "Are you sure you wish to remove the user, $username ($uid) - $fullname - $email - $desc?<br>";
270                 echo "<a href=\"$BASE_URL/admin/confremoveuser/$uid\">Yes</a> <a href=\"$BASE_URL/admin\">No</a><br>";
271         } else {
272                 echo "<h2>How?</h2>";
273                 echo "You got here in a weird way or the uid of the user you were trying to delete is invalid<br>";
274                 echo "<a href=\"$BASE_URL/admin\">Go Back</a>";
275         }
276         
277 }
278
279 function gwvpmini_ConfRemoveUser()\r
280 {\r
281         global $BASE_URL;\r
282 \r
283         $uid = -1;\r
284         if(isset($_REQUEST["q"])) {\r
285                 $query = $_REQUEST["q"];\r
286                 $qspl = explode("/", $query);\r
287                 if(isset($qspl[2])) {\r
288                         $uid = $qspl[2];\r
289                 }\r
290         }\r
291 \r
292         if($uid > 0) {
293                 $details = gwvpmini_getUser(null, null, $uid);
294                 $uname = $details["username"];
295                 gwvpmini_RemoveUser($uid);
296                 gwvpmini_SendMessage("info", "User $uname ($uid) has been removed");\r
297         } else {
298                 gwvpmini_SendMessage("info", "Problem deleteing user with uid $uid");
299         }\r
300
301         header("Location: $BASE_URL/admin");\r
302 }
303
304 function gwvpmini_SwitchEnableUser()\r
305 {
306         global $BASE_URL;\r
307         \r
308         $uid = -1;
309         $newst = -1;\r
310         if(isset($_REQUEST["q"])) {\r
311                 $query = $_REQUEST["q"];\r
312                 $qspl = explode("/", $query);\r
313                 if(isset($qspl[2])) {\r
314                         $newst = $qspl[2];\r
315                 }
316                 if(isset($qspl[3])) {
317                         $uid = $qspl[3];
318                 }\r
319         }
320         
321         if($newst == 1) $stat = "disabled";
322         else $stat = "enabled";\r
323         \r
324         if($uid > 0 && ($newst == 1 || $newst == 0)) {\r
325                 $details = gwvpmini_getUser(null, null, $uid);\r
326                 $uname = $details["username"];\r
327                 if($newst == 1) gwvpmini_DisableUser($uid);
328                 if($newst == 0) gwvpmini_EnableUser($uid);\r
329                 gwvpmini_SendMessage("info", "User $uname ($uid) has been $stat");\r
330         } else {\r
331                 gwvpmini_SendMessage("info", "Problem disabling user with uid $uid");\r
332         }\r
333         \r
334         header("Location: $BASE_URL/admin");\r
335         
336 }
337 ?>