working on the user/group administration page.
[gwvp.git] / gwvplib / gwvpuseradmin.php
index 39eeccb..7ccfb9b 100644 (file)
@@ -11,22 +11,221 @@ function gwvp_UserAdminCallMe()
 {
        if(isset($_REQUEST["q"])) {
                $query = $_REQUEST["q"];
-               if($query == "admin/users") return "gwvp_UserAdminPage";
+               $qspl = explode("/", $query);
+               if(isset($qspl[0]) && isset($qspl[1])) {
+                       if($qspl[0] == "admin" && $qspl[1] == "users") {
+                               if(isset($qspl[2])) {
+                                       switch($qspl[2]) {
+                                               case "adduser":
+                                                       return "gwvp_AddUserPage";
+                                                       break;
+                                               case "addgroup":
+                                                       return "gwvp_AddGroupPage";
+                                                       break;
+                                               case "modify":
+                                                       return "gwvp_ModifyUserPage";
+                                                       break;
+                                               case "modifygroup":
+                                                       return "gwvp_ModifyGroupPage";
+                                                       break;
+                                               default:
+                                                       return "gwvp_UserAdminPage";
+                                       }                                       
+                               } else {
+                                       return "gwvp_UserAdminPage";
+                               }
+                       }
+               } 
                else return false;
        }
        
        return false;
 }
 
+function gwvp_AddUserPage()
+{
+       global $BASE_URL;
+       
+       $email = $_REQUEST["email"];
+       $fullname = $_REQUEST["fullname"];
+       $pass1 = $_REQUEST["pass1"];
+       $pass2 = $_REQUEST["pass2"];
+       $username = $_REQUEST["username"];
+       $desc = $_REQUEST["desc"];
+       
+       // TODO: we need to do alot of checking here - that can come later
+       if(gwvp_createUser($email, $fullname, $pass1, $username, $desc, 0)) {
+               gwvp_SendMessage("info", "user $username, $fullname ($email) created");
+               header("Location: $BASE_URL/admin/users");
+               return;
+       } else {
+               gwvp_SendMessage("error", "error creating user for some unknown reason");
+               header("Location: $BASE_URL/admin/users");
+               return;
+       }
+
+       
+       /*
+               echo "<tr><td>EMail</td><td><input type=\"text\" name=\"email\"></td>";
+               echo "<td>Full Name</td><td><input type=\"text\" name=\"fullname\"></td></tr>";
+               echo "<tr><td>Password</td><td><input type=\"text\" name=\"pass1\"></td>";
+               echo "<td>Password Confirm</td><td><input type=\"text\" name=\"pass2\"></td></tr>";
+               echo "<tr><td>Username</td><td><input type=\"text\" name=\"username\"></td>";
+               echo "<td>Description</td><td><input type=\"text\" name=\"desc\"></td></tr>";
+               */
+       
+}
+
+function gwvp_AddGroupPage()
+{
+       /*
+        *              echo "<tr><td>Group Name</td><td><input type=\"text\" name=\"groupname\"><td></tr>";
+               echo "<tr><td>Admin Group?</td><td><input type=\"checkbox\" name=\"admingroup\" class=\"mycheckbox\"></td></tr>";
+               echo "<tr><td>Owner</td><td><div><select class=\"myselect\" name=\"groupowner\">";
+
+        */
+       global $BASE_URL;
+       
+       $gname = $_REQUEST["groupname"];
+       $isadmin = isset($_REQUEST["admingroup"]);
+       $gdesc = $_REQUEST["groupdesc"];
+       $owner = $_REQUEST["groupowner"];
+       
+       // gwvp_createGroup($group_name, $is_admin, $owner_id)
+       gwvp_createGroup("$gname", $gdesc, $isadmin, $owner);
+       
+       
+       header("Location: $BASE_URL/admin/users");
+       return;
+       
+}
+
 function gwvp_UserAdminPage()
 {
        gwvp_goMainPage("gwvp_UserAdminPageBody");
 }
 
+function gwvp_ModifyUserPage()
+{
+       gwvp_goMainPage("gwvp_ModifyUserPageBody");
+}
+
+function gwvp_ModifyGroupPage()
+{
+       gwvp_goMainPage("gwvp_ModifyGroupPageBody");
+}
+
+function gwvp_ModifyUserPageBody()
+{
+       //error_log("modify user body - coming in");
+       if(!gwvp_CheckAuthLevel("admin")) {
+               gwvp_AuthNoPermsBody();
+               return;
+       }
+       
+       
+       $uid = -1;
+       if(isset($_REQUEST["q"])) {
+               $query = $_REQUEST["q"];
+               $qspl = explode("/", $query);
+               $uid = $qspl[3];
+       }
+       
+       echo "modify user $uid";
+}
+
+function gwvp_ModifyGroupPageBody()
+{
+       global $LOGIN_TYPE, $BASE_URL;
+       
+       $gid = -1;
+       if(isset($_REQUEST["q"])) {
+               $query = $_REQUEST["q"];
+               $qspl = explode("/", $query);
+               $gid = $qspl[3];
+       }
+       
+       $users = gwvp_getUsers();
+       
+       $ginfo = gwvp_getGroup($gid);
+       $groupname = $ginfo["name"];
+       $groupdesc = $ginfo["description"];
+       if($ginfo["isadmin"]) $admin = "checked";
+       else $admin = "";
+       
+       echo "<h2>Modify Group - $groupname</h2>";
+       echo "<form method=\"post\" action=\"$BASE_URL/admin/users/groupmodify/$gid\">";
+       echo "<table>";
+       echo "<tr><td>Description</td><td><input type=\"text\" name=\"groupdesc\" value=\"$groupdesc\"></td></tr>";
+       echo "<tr><td>Admin</td><td><input type=\"checkbox\" name=\"is_admin\" $admin></td></tr>";
+       echo "<tr><td><input type=\"submit\" name=\"change\" value=\"Change\"></td></tr>";
+       
+       echo "</table>";
+       echo "</form>";
+       
+       echo "<h3>Group Membership</h3>";
+       echo "<form method=\"post\" action=\"$BASE_URL/admin/users/groupmember/$gid\">";
+       echo "<table border=\"1\"><tr><th>Members</th><th></th><th>All Users</th></tr>";
+       
+       echo "<tr><td>";
+       
+       
+       // members
+       echo "<select name=\"members\" size=\"20\" multiple>";
+       foreach($users as $u_users) {
+               $uid = $u_users["id"];
+               $email = $u_users["email"];
+               $username = $u_users["username"];
+               $fullname = $u_users["fullname"];
+               if(gwvp_IsGroupMember($email, $groupname)) {
+                       echo "<option value=\"$uid\">$username, $fullname ($email)</option>";
+               }
+               
+
+       }
+       
+       echo "</select>";
+       
+       
+       echo "</td><td>";
+       
+       // move buttons
+       echo "<input type=\"submit\" name=\"add\" value=\"<<\"><br>";
+       echo "<input type=\"submit\" name=\"remove\" value=\">>\"><br>";
+
+       
+       
+       echo "</td><td>";
+       
+       
+       // all users
+       echo "<select name=\"members\" size=\"20\" multiple>";
+       foreach($users as $u_users) {
+               $uid = $u_users["id"];
+               $email = $u_users["email"];
+               $username = $u_users["username"];
+               $fullname = $u_users["fullname"];
+               if(!gwvp_IsGroupMember($email, $groupname)) {
+                       echo "<option value=\"$uid\">$username, $fullname ($email)</option>";
+               }
+       }
+       echo "</select>";
+       
+       
+       
+       echo "</td></tr></table>";
+       echo "</form>";
+       
+       
+       
+       
+       
+       return;
+}
 
 function gwvp_UserAdminPageBody()
 {
-       global $LOGIN_TYPE;
+       global $LOGIN_TYPE, $BASE_URL;
        
        $groups = gwvp_getGroups();
        $users = gwvp_getUsers();
@@ -65,7 +264,7 @@ function gwvp_UserAdminPageBody()
                // create user bit
                echo "<tr><td valign=\"top\">";
                
-               echo "<form method=\"post\">";
+               echo "<form method=\"post\" action=\"$BASE_URL/admin/users/adduser\">";
                echo "<table>";
                echo "<tr><td>EMail</td><td><input type=\"text\" name=\"email\"></td>";
                echo "<td>Full Name</td><td><input type=\"text\" name=\"fullname\"></td></tr>";
@@ -80,9 +279,10 @@ function gwvp_UserAdminPageBody()
                echo "</td><td valign=\"top\">";
                
                // Create group
-               echo "<form method=\"post\">";
+               echo "<form method=\"post\" action=\"$BASE_URL/admin/users/addgroup\">";
                echo "<table>";
                echo "<tr><td>Group Name</td><td><input type=\"text\" name=\"groupname\"><td></tr>";
+               echo "<tr><td>Group Description</td><td><input type=\"text\" name=\"groupdesc\"><td></tr>";
                echo "<tr><td>Admin Group?</td><td><input type=\"checkbox\" name=\"admingroup\" class=\"mycheckbox\"></td></tr>";
                echo "<tr><td>Owner</td><td><div><select class=\"myselect\" name=\"groupowner\">";
                foreach($users as $u_users) {
@@ -178,7 +378,7 @@ function gwvp_UserAdminPageBody()
                                break;
                        case "admin":
                                echo "<tr><td>$email</td><td>$username</td><td>$fullname</td><td>$ugroups</td><td>$desc</td>";
-                               echo "<td>$globaladmin</td><td>$status</td><td><a href=\"$BASE_URL/users/modify?id=$userid\">Modify</a></td></tr>";
+                               echo "<td>$globaladmin</td><td>$status</td><td><a href=\"$BASE_URL/admin/users/modify/$userid\">Modify</a></td></tr>";
                                break;
                        case "user":
                                echo "<tr><td>$username</td><td>$ugroups</td><td>$desc</td></tr>";
@@ -200,7 +400,7 @@ function gwvp_UserAdminPageBody()
                        echo "<tr><th>Group Name</th><th>Owner</th></tr>";
                        break;
                case "admin":
-                       echo "<tr><th>Group Name</th><th>Owner</th><th>Admin Group?</th></tr>";
+                       echo "<tr><th>Group Name</th><th>Owner</th><th>Admin Group?</th><th>Modify</th></tr>";
                        break;
                case "user":
                        echo "<tr><th>Group Name</th><th>Owner</th><th>Admin Group?</th></tr>";
@@ -218,6 +418,7 @@ function gwvp_UserAdminPageBody()
 
                 */
                $gname = $u_groups["name"];
+               $gid = $u_groups["id"];
                $owner = gwvp_getUserEmail($u_groups["ownerid"]);
                if($u_groups["admin"]) $gadmin = "Yes";
                else $gadmin  = "No";
@@ -227,7 +428,7 @@ function gwvp_UserAdminPageBody()
                                echo "<tr><td>$gname</td><td>$owner</td></tr>";
                                break;
                        case "admin":
-                               echo "<tr><td>$gname</td><td>$owner</td><td>$gadmin</td></tr>";
+                               echo "<tr><td>$gname</td><td>$owner</td><td>$gadmin</td><td><a href=\"$BASE_URL/admin/users/modifygroup/$gid\">Modify</a></td></tr>";
                                break;
                        case "user":
                                echo "<tr><td>$gname</td><td>$owner</td><td>$gadmin</td></tr>";