3 // setup the call me function for useradmin - matches on url of admin/users
4 $CALL_ME_FUNCTIONS["useradmin"] = "gwvp_UserAdminCallMe";
6 $MENU_ITEMS["10users"]["text"] = "Users/Groups";
7 $MENU_ITEMS["10users"]["link"] = "$BASE_URL/admin/users";
10 function gwvp_UserAdminCallMe()
12 if(isset($_REQUEST["q"])) {
13 $query = $_REQUEST["q"];
14 $qspl = explode("/", $query);
15 if(isset($qspl[0]) && isset($qspl[1])) {
16 if($qspl[0] == "admin" && $qspl[1] == "users") {
20 return "gwvp_AddUserPage";
23 return "gwvp_groupMemberChange";
26 return "gwvp_AddGroupPage";
29 return "gwvp_ModifyUserPage";
32 return "gwvp_ModifyGroupPage";
35 return "gwvp_UserAdminPage";
38 return "gwvp_UserAdminPage";
48 function gwvp_AddUserPage()
52 $email = $_REQUEST["email"];
53 $fullname = $_REQUEST["fullname"];
54 $pass1 = $_REQUEST["pass1"];
55 $pass2 = $_REQUEST["pass2"];
56 $username = $_REQUEST["username"];
57 $desc = $_REQUEST["desc"];
59 // TODO: we need to do alot of checking here - that can come later
60 if(gwvp_createUser($email, $fullname, $pass1, $username, $desc, 0)) {
61 gwvp_SendMessage("info", "user $username, $fullname ($email) created");
62 header("Location: $BASE_URL/admin/users");
65 gwvp_SendMessage("error", "error creating user for some unknown reason");
66 header("Location: $BASE_URL/admin/users");
72 echo "<tr><td>EMail</td><td><input type=\"text\" name=\"email\"></td>";
73 echo "<td>Full Name</td><td><input type=\"text\" name=\"fullname\"></td></tr>";
74 echo "<tr><td>Password</td><td><input type=\"text\" name=\"pass1\"></td>";
75 echo "<td>Password Confirm</td><td><input type=\"text\" name=\"pass2\"></td></tr>";
76 echo "<tr><td>Username</td><td><input type=\"text\" name=\"username\"></td>";
77 echo "<td>Description</td><td><input type=\"text\" name=\"desc\"></td></tr>";
82 function gwvp_AddGroupPage()
85 * echo "<tr><td>Group Name</td><td><input type=\"text\" name=\"groupname\"><td></tr>";
86 echo "<tr><td>Admin Group?</td><td><input type=\"checkbox\" name=\"admingroup\" class=\"mycheckbox\"></td></tr>";
87 echo "<tr><td>Owner</td><td><div><select class=\"myselect\" name=\"groupowner\">";
92 $gname = $_REQUEST["groupname"];
93 $isadmin = isset($_REQUEST["admingroup"]);
94 $gdesc = $_REQUEST["groupdesc"];
95 $owner = $_REQUEST["groupowner"];
97 // gwvp_createGroup($group_name, $is_admin, $owner_id)
98 gwvp_createGroup("$gname", $gdesc, $isadmin, $owner);
99 // we also need to add the owner to the group
100 gwvp_addGroupMember(gwvp_getUserName($owner), $gname);
103 header("Location: $BASE_URL/admin/users");
108 function gwvp_UserAdminPage()
110 gwvp_goMainPage("gwvp_UserAdminPageBody");
113 function gwvp_ModifyUserPage()
115 gwvp_goMainPage("gwvp_ModifyUserPageBody");
118 function gwvp_ModifyGroupPage()
120 gwvp_goMainPage("gwvp_ModifyGroupPageBody");
123 function gwvp_ModifyUserPageBody()
125 //error_log("modify user body - coming in");
126 if(!gwvp_CheckAuthLevel("admin")) {
127 gwvp_AuthNoPermsBody();
133 if(isset($_REQUEST["q"])) {
134 $query = $_REQUEST["q"];
135 $qspl = explode("/", $query);
139 echo "modify user $uid";
142 function gwvp_groupMemberChange()
144 global $LOGIN_TYPE, $BASE_URL;
148 if(isset($_REQUEST["q"])) {
149 $query = $_REQUEST["q"];
150 $qspl = explode("/", $query);
153 error_log("into groupmemberchange with $gid");
158 if(isset($_REQUEST["add"])) {
159 error_log("$gid add set to ".$_REQUEST["add"]);
161 if(isset($_REQUEST["membersout"])) {
162 foreach($_REQUEST["membersout"] as $uid) {
163 error_log("would add $uid from $gid");
164 gwvp_addGroupMemberByID($uid, $gid);
169 if(isset($_REQUEST["remove"])) {
170 error_log("$gid remove set to ".$_REQUEST["remove"]);
171 // this is a remove op
172 if(isset($_REQUEST["membersin"])) {
173 foreach($_REQUEST["membersin"] as $uid) {
174 error_log("would remote $uid from $gid");
175 gwvp_deleteGroupMemberByID($uid, $gid);
180 error_log("redirect to $BASE_URL/admin/users/modifygroup/$gid");
181 header("Location: $BASE_URL/admin/users/modifygroup/$gid");
182 //gwvp_goMainPage("gwvp_ModifyGroupPageBody");
187 function gwvp_ModifyGroupPageBody()
189 global $LOGIN_TYPE, $BASE_URL;
192 if(isset($_REQUEST["q"])) {
193 $query = $_REQUEST["q"];
194 $qspl = explode("/", $query);
198 $users = gwvp_getUsers();
200 $ginfo = gwvp_getGroup($gid);
201 $groupname = $ginfo["name"];
202 $groupdesc = $ginfo["description"];
203 if($ginfo["isadmin"]) $admin = "checked";
206 echo "<h2>Modify Group - $groupname</h2>";
207 echo "<form method=\"post\" action=\"$BASE_URL/admin/users/groupmodify/$gid\">";
209 echo "<tr><td>Description</td><td><input type=\"text\" name=\"groupdesc\" value=\"$groupdesc\"></td></tr>";
210 echo "<tr><td>Admin</td><td><input type=\"checkbox\" name=\"is_admin\" $admin></td></tr>";
211 echo "<tr><td><input type=\"submit\" name=\"change\" value=\"Change\"></td></tr>";
216 echo "<h3>Group Membership</h3>";
217 echo "<form method=\"post\" action=\"$BASE_URL/admin/users/groupmember/$gid\">";
218 echo "<table border=\"1\"><tr><th>Members</th><th></th><th>All Users</th></tr>";
224 echo "<select name=\"membersin[]\" size=\"20\" multiple=\"true\">";
225 foreach($users as $u_users) {
226 $uid = $u_users["id"];
227 $email = $u_users["email"];
228 $username = $u_users["username"];
229 $fullname = $u_users["fullname"];
230 if(gwvp_IsGroupMember($email, $groupname)) {
231 echo "<option value=\"$uid\">$username, $fullname ($email)</option>";
243 echo "<input type=\"submit\" name=\"add\" value=\"<<\"><br>";
244 echo "<input type=\"submit\" name=\"remove\" value=\">>\"><br>";
252 echo "<select name=\"membersout[]\" size=\"20\" multiple=\"true\">";
253 foreach($users as $u_users) {
254 $uid = $u_users["id"];
255 $email = $u_users["email"];
256 $username = $u_users["username"];
257 $fullname = $u_users["fullname"];
258 if(!gwvp_IsGroupMember($email, $groupname)) {
259 echo "<option value=\"$uid\">$username, $fullname ($email)</option>";
266 echo "</td></tr></table>";
276 function gwvp_UserAdminPageBody()
278 global $LOGIN_TYPE, $BASE_URL;
280 $groups = gwvp_getGroups();
281 $users = gwvp_getUsers();
283 echo "<h2>Users and Groups</h2>";
284 echo "On this page you can manage users, groups, group membership and update your profile<br>";
287 echo "<tr><td colspan=\"2\"><hr></td></tr>";
290 // Header part of table
291 // user self-management bit
292 if($LOGIN_TYPE != "anon") {
293 echo "<tr><td valign=\"top\"><h3>My Profile</h3></td><td><h3>My Groups</h3></td></tr>";
297 echo "<td valign=\"top\">";
298 echo "User profile bits go here";
301 // now the group bit for the user
302 echo "<td valign=\"top\">";
303 echo "User owned groups, and groups their a member of go here";
307 echo "<tr><td colspan=\"2\"><hr></td></tr>";
311 if($LOGIN_TYPE == "admin") {
312 echo "<tr><td valign=\"top\"><h3>Create User</h3></td><td><h3>Create Group</h3></td></tr>";
315 echo "<tr><td valign=\"top\">";
317 echo "<form method=\"post\" action=\"$BASE_URL/admin/users/adduser\">";
319 echo "<tr><td>EMail</td><td><input type=\"text\" name=\"email\"></td>";
320 echo "<td>Full Name</td><td><input type=\"text\" name=\"fullname\"></td></tr>";
321 echo "<tr><td>Password</td><td><input type=\"text\" name=\"pass1\"></td>";
322 echo "<td>Password Confirm</td><td><input type=\"text\" name=\"pass2\"></td></tr>";
323 echo "<tr><td>Username</td><td><input type=\"text\" name=\"username\"></td>";
324 echo "<td>Description</td><td><input type=\"text\" name=\"desc\"></td></tr>";
325 echo "<tr><td><input type=\"submit\" name=\"Create\" value=\"Create\" class=\"buttons\"></td></tr>";
329 echo "</td><td valign=\"top\">";
332 echo "<form method=\"post\" action=\"$BASE_URL/admin/users/addgroup\">";
334 echo "<tr><td>Group Name</td><td><input type=\"text\" name=\"groupname\"><td></tr>";
335 echo "<tr><td>Group Description</td><td><input type=\"text\" name=\"groupdesc\"><td></tr>";
336 echo "<tr><td>Admin Group?</td><td><input type=\"checkbox\" name=\"admingroup\" class=\"mycheckbox\"></td></tr>";
337 echo "<tr><td>Owner</td><td><div><select class=\"myselect\" name=\"groupowner\">";
338 foreach($users as $u_users) {
339 $uid = $u_users["id"];
340 $email = $u_users["email"];
341 $username = $u_users["username"];
342 $fullname = $u_users["fullname"];
343 echo "<option value=\"$uid\">$username, $fullname ($email)</option>";
345 echo "</select></div></td></tr>";
349 echo "<tr><td><input type=\"submit\" name=\"Create\" value=\"Create\" class=\"buttons\"></td></tr>";
355 echo "<tr><td colspan=\"2\"><hr></td></tr>";
360 // TODO: whats seen here will depend GREATLY on setting in config - need to fix this later
362 echo "<tr><td valign=\"top\"><h3>Users</h3></td><td><h3>Groups</h3></td></tr>";
365 echo "<table border=\"1\">";
366 switch($LOGIN_TYPE) {
368 echo "<tr><th>Username</th><th>Groups</th><th>Description</th></tr>";
371 echo "<tr><th>EMail</th><th>Username</th><th>Full Name</th><th>Groups</th><th>Description</th><th>Admin?</th><th>Status</th><th>Modify</th></tr>";
374 echo "<tr><th>Username</th><th>Groups</th><th>Description</th></tr>";
379 * $returns[$rn]["id"] = $u_res["users_id"];
380 $returns[$rn]["fullname"] = $u_res["user_full_name"];
381 $returns[$rn]["password"] = $u_res["user_password"];
382 $returns[$rn]["username"] = $u_res["user_username"];
383 $returns[$rn]["email"] = $u_res["user_email"];
384 $returns[$rn]["desc"] = $u_res["user_desc"];
385 $returns[$rn]["status"] = $u_res["user_status"];
388 foreach($users as $u_users) {
389 $userid = $u_users["id"];
390 $email = $u_users["email"];
391 $fullname = $u_users["fullname"];
392 $username = $u_users["username"];
393 $desc = $u_users["desc"];
394 $status = $u_users["status"];
395 if(gwvp_IsUserAdmin($email) == 1) {
396 $globaladmin = "Yes";
402 // TODO: sort out group prints here
403 $ingroups = gwvp_getGroupsForUser($email);
405 $ownedgroups = gwvp_getGroupsOwnedByUser($email);
407 //var_dump($ownedgroups);
409 if($ownedgroups == false) $ogroups = "-";
411 foreach($ownedgroups as $gr_u) {
412 $ugroups .= "<font color=\"#3333ff\">$gr_u</font><br>";
418 if($ingroups !== false) foreach($ingroups as $grname) {
419 $isownedgroup = false;
420 if($ownedgroups !== false) foreach($ownedgroups as $gr_u) {
421 if($grname == $gr_u) $isownedgroup = true;
423 if(!$isownedgroup) $ugroups .= "$grname<br>";
427 switch($LOGIN_TYPE) {
429 echo "<tr><td>$username</td><td>$ugroups</td><td>$desc</td></tr>";
432 echo "<tr><td>$email</td><td>$username</td><td>$fullname</td><td>$ugroups</td><td>$desc</td>";
433 echo "<td>$globaladmin</td><td>$status</td><td><a href=\"$BASE_URL/admin/users/modify/$userid\">Modify</a></td></tr>";
436 echo "<tr><td>$username</td><td>$ugroups</td><td>$desc</td></tr>";
444 echo "</td><td valign=\"top\">";
446 // group part of table
448 echo "<table border=\"1\">";
450 switch($LOGIN_TYPE) {
452 echo "<tr><th>Group Name</th><th>Owner</th></tr>";
455 echo "<tr><th>Group Name</th><th>Owner</th><th>Admin Group?</th><th>Modify</th></tr>";
458 echo "<tr><th>Group Name</th><th>Owner</th><th>Admin Group?</th></tr>";
462 foreach($groups as $u_groups) {
464 * $returns[$rn]["id"] = $u_res["groups_id"];
465 $returns[$rn]["name"] = $u_res["groups_name"];
466 if($u_res["groups_is_admin"]=="1") $return[$rn]["admin"] = true;
467 else $return[$rn]["admin"] = false;
468 $returns[$rn]["admin"] = $u_res["groups_is_admin"];
469 $returns[$rn]["ownerid"] = $u_res["groups_owner_id"];
472 $gname = $u_groups["name"];
473 $gid = $u_groups["id"];
474 $owner = gwvp_getUserEmail($u_groups["ownerid"]);
475 if($u_groups["admin"]) $gadmin = "Yes";
478 switch($LOGIN_TYPE) {
480 echo "<tr><td>$gname</td><td>$owner</td></tr>";
483 echo "<tr><td>$gname</td><td>$owner</td><td>$gadmin</td><td><a href=\"$BASE_URL/admin/users/modifygroup/$gid\">Modify</a></td></tr>";
486 echo "<tr><td>$gname</td><td>$owner</td><td>$gadmin</td></tr>";
493 echo "</td></tr></table>";