added repo remove from admin page
[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] == "removerepo") {
37                                                 return "gwvpmini_RemoveRepoPage";
38                                         }
39                                         if($qspl[1] == "confremoveuser") {
40                                                 return "gwvpmini_ConfRemoveUser";
41                                         }
42                                         if($qspl[1] == "confremoverepo") {
43                                                 return "gwvpmini_ConfRemoveRepo";
44                                         }
45                                         if($qspl[1] == "switchenable") {
46                                                 return "gwvpmini_SwitchEnableUser";
47                                         }
48                                 } else {\r
49                                         error_log("i got here, where next?");\r
50                                         return "gwvpmini_AdminMainPage";\r
51                                 }\r
52                         } else return false;\r
53                 }\r
54                 else return false;\r
55         }\r
56 \r
57         return false;\r
58 }
59 \r
60 function gwvpmini_RemoveRepoPage()\r
61 {\r
62         gwvpmini_goMainPage("gwvpmini_RemoveRepoPageBody");\r
63 \r
64 }\r
65 \r
66
67 function gwvpmini_RemoveUserPage()
68 {
69         gwvpmini_goMainPage("gwvpmini_RemoveUserPageBody");
70         
71 }
72
73 function gwvpmini_AdminMainPage()
74 {
75         gwvpmini_goMainPage("gwvpmini_AdminMainPageBody");
76 }
77
78 function gwvpmini_AdminMainPageBody()
79 {
80         global $BASE_URL;
81         global $can_register, $reg_reqs_confirm, $confirm_from_address;
82         
83         if($can_register) {
84                 $register = "Registration Enabled (<a href=\"$BASE_URL/admin/changereg\">Disable</a>)";
85         } else {
86                 $register = "Registration Disabled (<a href=\"$BASE_URL/admin/changereg\">Enable</a>)";
87         }
88         
89         if($reg_reqs_confirm) {
90                 $regconfirm = "Registration Requires Confirmation (<a href=\"$BASE_URL/admin/changeconfirm\">Disable</a>)";
91         } else {
92                 $regconfirm = "Registration Doesnt Require Confirmation (<a href=\"$BASE_URL/admin/changeconfirm\">Enable</a>)";
93         }
94         $totalusers = gwvpmini_GetNUsers();
95         echo "<table><tr valign=\"top\"><td>";
96         echo "<h2>Users - $totalusers</h2>";
97         echo "$register<br>$regconfirm<br>";
98         echo "<form method=\"post\" action=\"$BASE_URL/admin/changefromemail\">";
99         echo "Address emails are sent from <input type=\"text\" name=\"fromemail\" value=\"$confirm_from_address\"><input type=\"submit\" name=\"Update\" value=\"Update\"><br>";
100         echo "</form>"; 
101
102         echo "<table border=\"1\">";
103         echo "<tr><th>Username</th><th>Email Address</th><th>Full Name</th><th>Description</th><th>Status</th><th>Control</th></tr>";
104         foreach(gwvpmini_GetUsers() as $key => $val) {
105                 $id = $key;
106                 $un = $val["username"];
107                 $em = $val["email"];
108                 $fn = $val["fullname"];
109                 $ds = $val["desc"];
110                 $st_t = $val["status"];
111                 $st_l = $val["level"];
112                 
113                 $astat = "0";
114                 $cstat = "WTF";
115                 $level = "WTF";
116                 if($st_l == 0) $level = "User";
117                 if($st_l == 1) $level = "Admin";
118                 
119                 $status = "";
120                 if($st_t[0] == "1") {
121                         $status = ", disabled";
122                         $astat = 0;
123                         $cstat = "Enable";
124                 } else if ($st_t[0] == "0") {
125                         $astat = 1;
126                         $cstat = "Disable";
127                 } else  if($st_t[0] == "2") {
128                         $vl = explode(":", $st_t);
129                         error_log("VL: ".print_r($vl, true));
130                         $status = " Awaiting Confirmation (<a href=\"$BASE_URL/register/confirmreg/".$vl[1]."\">Confirm</a>)";
131                 }
132                 
133                 $st = "$level$status";
134                 
135                 $unlval = "<a href=\"$BASE_URL/user/$un\">$un</a>";
136                 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> ";
137                 if ($st_t[0] == "0"||$st_t[0] == "1") echo "<a href=\"$BASE_URL/admin/switchenable/$astat/$id\">$cstat</a></td></tr>";
138                 else echo "</td></tr>";
139         }
140         
141         
142         echo "</table>";
143         echo "</td><td>";
144         echo "<h3>Create User</h3>";
145         echo "<form method=\"post\" action=\"$BASE_URL/admin/user/create\">";
146         echo "<table border=\"1\">";\r
147         echo "<tr><th>Username</th><td><input type=\"text\" name=\"username\"></td></tr>";
148         echo "<tr><th>Password</th><td><input type=\"password\" name=\"password\"></td></tr>";
149         echo "<tr><th>Confirm Password</th><td><input type=\"password\" name=\"confpassword\"></td></tr>";
150         echo "<tr><th>Full Name</th><td><input type=\"text\" name=\"fullname\"></td></tr>";
151         echo "<tr><th>Description</th><td><input type=\"text\" name=\"desc\"></td></tr>";
152         echo "<tr><th>Email</th><td><input type=\"text\" name=\"email\"></td></tr>";
153         echo "<tr><th>Confirm Email</th><td><input type=\"text\" name=\"confemail\"></td></tr>";
154         echo "<tr><th>Admin?</th><td><input type=\"checkbox\" name=\"isadmin\"></td></tr>";
155         echo "<tr><td colspan=\"2\"><input type=\"submit\" name=\"Add\" value=\"Add\"></td></tr>";
156         echo "</table>";
157         echo "</form>";
158         echo "</td></tr></table>";
159         
160         $totalrepos = gwvpmini_GetNRepos();
161         echo "<h2>Repo's - $totalrepos</h2>";
162         echo "<table border=\"1\">";
163         echo "<tr><th>Repo Name</th><th>Repo Desc</th><th>Owner</th><th>Control</th></tr>";
164         foreach(gwvpmini_GetRepos() as $key => $val) {
165                 $id = $key;
166                 $rn = $val["name"];
167                 $ds = $val["desc"];
168                 $ow = $val["owner"];
169                 $udet = gwvpmini_getUser(null, null, $ow);
170                 if(!$udet) {
171                         $owl = "Orphaned";
172                 } else {
173                         $owl = $udet["username"]." (".$udet["id"].") - ".$udet["fullname"]." (".$udet["email"].") - <a href=\"mailto:".$udet["email"]."\">Email Owner</a>";
174                 }
175                 echo "<tr><td><a href=\"$BASE_URL/view/$rn\">$rn</a></td><td>$ds</td><td>$owl</td><td><a href=\"$BASE_URL/admin/removerepo/$id\">Remove</a> <a href=\"$BASE_URL/admin/switchenable/$id\">Disable</a></td></tr>";
176         }
177         echo "</table>";
178 }\r
179
180
181 function gwvpmini_AdminUserCreate()
182 {
183         global $BASE_URL;
184         
185         $name = $_REQUEST["username"];
186         $pass1 = $_REQUEST["password"];
187         $pass2 = $_REQUEST["confpassword"];\r
188         $fname = $_REQUEST["fullname"];
189         $desc = $_REQUEST["desc"];
190         $email1 = $_REQUEST["email"];\r
191         $email2 = $_REQUEST["confemail"];
192         if(isset($_REQUEST["isadmin"])) $level = 1;
193         else $level = 0;\r
194         
195         $id = gwvpmini_GetUserId($name);
196         
197         if(!$id) {
198                 if($pass1 != $pass2) {
199                         gwvpmini_SendMessage("error", "Passwords dont match");
200                         header("Location: $BASE_URL/admin");
201                         return;
202                 }
203                 if($email1 != $email2) {
204                         gwvpmini_SendMessage("error", "Email Addresses dont match");
205                         header("Location: $BASE_URL/admin");
206                         return;
207                 }
208                 
209                 gwvpmini_AddUser($name, $pass1, $fname, $email1, $desc, $level, 0);
210                 gwvpmini_SendMessage("info", "User $fname created");
211         } else {
212                 gwvpmini_SendMessage("error", "User $name already exists, cant create");
213         }
214         
215         header("Location: $BASE_URL/admin");
216         return;
217         
218 }
219
220
221 function gwvpmini_ChangeRegistration()
222 {
223         global $can_register, $BASE_URL;
224         
225         if($can_register) {
226                 gwvpmini_setConfigVal("canregister", "0");
227                 gwvpmini_SendMessage("info", "Registration disabled");
228         } else {
229                 gwvpmini_setConfigVal("canregister", "1");\r
230                 gwvpmini_SendMessage("info", "Registration enabled");
231         }
232         
233         header("Location: $BASE_URL/admin");
234 }
235
236
237 function gwvpmini_ChangeRegConfig()
238 {
239         global $reg_reqs_confirm, $BASE_URL;\r
240         \r
241         if($reg_reqs_confirm) {\r
242                 gwvpmini_setConfigVal("registerrequiresconfirm", "0");\r
243                 gwvpmini_SendMessage("info", "Registration Confirmation disabled");\r
244         } else {\r
245                 gwvpmini_setConfigVal("registerrequiresconfirm", "1");\r
246                 gwvpmini_SendMessage("info", "Registration Confirmation enabled");\r
247         }\r
248         \r
249         header("Location: $BASE_URL/admin");
250 }
251
252 function gwvpmini_ChangeFromAddress()
253 {
254         global $BASE_URL;
255         
256         $newfrom = $_REQUEST["fromemail"];\r
257         \r
258         gwvpmini_setConfigVal("eamilfromaddress", "$newfrom");\r
259         gwvpmini_SendMessage("info", "Email from address updated to \"$newfrom\"");\r
260         \r
261         header("Location: $BASE_URL/admin");\r
262         
263 }
264
265 function gwvpmini_RemoveUserPageBody()
266 {
267         global $BASE_URL;
268         
269         $uid = -1;
270         if(isset($_REQUEST["q"])) {\r
271                 $query = $_REQUEST["q"];\r
272                 $qspl = explode("/", $query);\r
273                 if(isset($qspl[2])) {
274                         $uid = $qspl[2];\r
275                 }
276         }
277         
278         if($uid != -1) {
279                 $details = gwvpmini_GetUsers($uid, 1);
280                 $username = $details[$uid]["username"];
281                 $fullname = $details[$uid]["fullname"];
282                 $email = $details[$uid]["email"];
283                 $desc = $details[$uid]["desc"];
284                 
285                 error_log("user dets:".print_r($details, true));
286                 
287                 echo "<h2>Remove User?</h2>";
288                 echo "Are you sure you wish to remove the user, $username ($uid) - $fullname - $email - $desc?<br>";
289                 echo "<a href=\"$BASE_URL/admin/confremoveuser/$uid\">Yes</a> <a href=\"$BASE_URL/admin\">No</a><br>";
290         } else {
291                 echo "<h2>How?</h2>";
292                 echo "You got here in a weird way or the uid of the user you were trying to delete is invalid<br>";
293                 echo "<a href=\"$BASE_URL/admin\">Go Back</a>";
294         }
295         
296 }
297
298 function gwvpmini_RemoveRepoPageBody()\r
299 {\r
300         global $BASE_URL;\r
301 \r
302         $rid = -1;
303         $uid = -1;\r
304         if(isset($_REQUEST["q"])) {\r
305                 $query = $_REQUEST["q"];\r
306                 $qspl = explode("/", $query);\r
307                 if(isset($qspl[2])) {\r
308                         $rid = $qspl[2];\r
309                 }\r
310         }
311         
312         $repdet = gwvpmini_getRepo(null, null, $rid);
313         if($repdet != false) $uid = $repdet["ownerid"];
314         $usedet = gwvpmini_getUser(null, null, $uid);\r
315         \r
316 \r
317         if($rid != -1) {
318                 $rname = $repdet["name"];
319                 $rdesc = $repdet["desc"];
320                 if($usedet == false) {
321                         $ownedby = "which is unowned (Orphaned)";
322                 } else {
323                         $ownedby = "owned by <b>$username</b> ($uid) - \"$fullname\"";
324                 }
325                 $username = $usedet["username"];
326                 $fullname = $usedet["fullname"];
327                 \r
328 \r
329                 error_log("user dets:".print_r($details, true));\r
330 \r
331                 echo "<h2>Remove User?</h2>";\r
332                 echo "Are you sure you wish to remove the repo, <b>$rname</b> ($rid) - \"$rdesc\" $ownedby?<br>";\r
333                 echo "<a href=\"$BASE_URL/admin/confremoverepo/$rid\">Yes</a> <a href=\"$BASE_URL/admin\">No</a><br>";\r
334         } else {\r
335                 echo "<h2>How?</h2>";\r
336                 echo "You got here in a weird way or the uid of the repo you were trying to delete is invalid<br>";\r
337                 echo "<a href=\"$BASE_URL/admin\">Go Back</a>";\r
338         }\r
339 \r
340 }
341
342 function gwvpmini_ConfRemoveRepo()\r
343 {\r
344         global $BASE_URL;\r
345
346         
347         error_log("CONF REMOVE REPO");
348         \r
349         $rid = -1;\r
350         if(isset($_REQUEST["q"])) {\r
351                 $query = $_REQUEST["q"];\r
352                 $qspl = explode("/", $query);\r
353                 if(isset($qspl[2])) {\r
354                         $rid = $qspl[2];\r
355                 }\r
356         }\r
357 \r
358         if($rid > 0) {\r
359                 $details = gwvpmini_getRepo(null, null, $rid);\r
360                 $rname = $details["name"];\r
361                 gwvpmini_RemoveRepo($rid);\r
362                 gwvpmini_SendMessage("info", "Repo $rname ($rid) has been removed");\r
363         } else {\r
364                 gwvpmini_SendMessage("info", "Problem deleteing repo with rid $rid");\r
365         }\r
366 \r
367         header("Location: $BASE_URL/admin");\r
368 }
369
370 function gwvpmini_ConfRemoveUser()\r
371 {\r
372         global $BASE_URL;\r
373 \r
374         $uid = -1;\r
375         if(isset($_REQUEST["q"])) {\r
376                 $query = $_REQUEST["q"];\r
377                 $qspl = explode("/", $query);\r
378                 if(isset($qspl[2])) {\r
379                         $uid = $qspl[2];\r
380                 }\r
381         }\r
382 \r
383         if($uid > 0) {
384                 $details = gwvpmini_getUser(null, null, $uid);
385                 $uname = $details["username"];
386                 gwvpmini_RemoveUser($uid);
387                 gwvpmini_SendMessage("info", "User $uname ($uid) has been removed");\r
388         } else {
389                 gwvpmini_SendMessage("info", "Problem deleteing user with uid $uid");
390         }\r
391
392         header("Location: $BASE_URL/admin");\r
393 }
394
395 function gwvpmini_SwitchEnableUser()\r
396 {
397         global $BASE_URL;\r
398         \r
399         $uid = -1;
400         $newst = -1;\r
401         if(isset($_REQUEST["q"])) {\r
402                 $query = $_REQUEST["q"];\r
403                 $qspl = explode("/", $query);\r
404                 if(isset($qspl[2])) {\r
405                         $newst = $qspl[2];\r
406                 }
407                 if(isset($qspl[3])) {
408                         $uid = $qspl[3];
409                 }\r
410         }
411         
412         if($newst == 1) $stat = "disabled";
413         else $stat = "enabled";\r
414         \r
415         if($uid > 0 && ($newst == 1 || $newst == 0)) {\r
416                 $details = gwvpmini_getUser(null, null, $uid);\r
417                 $uname = $details["username"];\r
418                 if($newst == 1) gwvpmini_DisableUser($uid);
419                 if($newst == 0) gwvpmini_EnableUser($uid);\r
420                 gwvpmini_SendMessage("info", "User $uname ($uid) has been $stat");\r
421         } else {\r
422                 gwvpmini_SendMessage("info", "Problem disabling user with uid $uid");\r
423         }\r
424         \r
425         header("Location: $BASE_URL/admin");\r
426         
427 }
428 ?>