started some input validation code and unit tests for it
[gwvp.git] / gwvplib / gwvpuseradmin.php
index 7ccfb9b..1d7e86d 100644 (file)
@@ -19,6 +19,9 @@ function gwvp_UserAdminCallMe()
                                                case "adduser":
                                                        return "gwvp_AddUserPage";
                                                        break;
+                                               case "groupmember":
+                                                       return "gwvp_groupMemberChange";
+                                                       break;
                                                case "addgroup":
                                                        return "gwvp_AddGroupPage";
                                                        break;
@@ -93,6 +96,8 @@ function gwvp_AddGroupPage()
        
        // gwvp_createGroup($group_name, $is_admin, $owner_id)
        gwvp_createGroup("$gname", $gdesc, $isadmin, $owner);
+       // we also need to add the owner to the group
+       gwvp_addGroupMember(gwvp_getUserName($owner), $gname);
        
        
        header("Location: $BASE_URL/admin/users");
@@ -134,6 +139,51 @@ function gwvp_ModifyUserPageBody()
        echo "modify user $uid";
 }
 
+function gwvp_groupMemberChange()
+{
+       global $LOGIN_TYPE, $BASE_URL;
+       
+       $gid = -1;
+       
+       if(isset($_REQUEST["q"])) {
+               $query = $_REQUEST["q"];
+               $qspl = explode("/", $query);
+               $gid = $qspl[3];
+       }
+       error_log("into groupmemberchange with $gid");
+       if($gid!= -1) {
+               
+       }
+       
+       if(isset($_REQUEST["add"])) {
+               error_log("$gid add set to ".$_REQUEST["add"]);
+               // this is an add op
+               if(isset($_REQUEST["membersout"])) {
+                       foreach($_REQUEST["membersout"] as $uid) {
+                               error_log("would add $uid from $gid");
+                               gwvp_addGroupMemberByID($uid, $gid);
+                               
+                       }
+               }
+       }
+       if(isset($_REQUEST["remove"])) {
+               error_log("$gid remove set to ".$_REQUEST["remove"]);
+               // this is a remove op
+               if(isset($_REQUEST["membersin"])) {
+                       foreach($_REQUEST["membersin"] as $uid) {
+                               error_log("would remote $uid from $gid");
+                               gwvp_deleteGroupMemberByID($uid, $gid);
+                       }
+               }
+       }
+       
+       error_log("redirect to $BASE_URL/admin/users/modifygroup/$gid");
+       header("Location: $BASE_URL/admin/users/modifygroup/$gid");
+       //gwvp_goMainPage("gwvp_ModifyGroupPageBody");
+       
+       return;
+}
+
 function gwvp_ModifyGroupPageBody()
 {
        global $LOGIN_TYPE, $BASE_URL;
@@ -171,7 +221,7 @@ function gwvp_ModifyGroupPageBody()
        
        
        // members
-       echo "<select name=\"members\" size=\"20\" multiple>";
+       echo "<select name=\"membersin[]\" size=\"20\" multiple=\"true\">";
        foreach($users as $u_users) {
                $uid = $u_users["id"];
                $email = $u_users["email"];
@@ -199,7 +249,7 @@ function gwvp_ModifyGroupPageBody()
        
        
        // all users
-       echo "<select name=\"members\" size=\"20\" multiple>";
+       echo "<select name=\"membersout[]\" size=\"20\" multiple=\"true\">";
        foreach($users as $u_users) {
                $uid = $u_users["id"];
                $email = $u_users["email"];
@@ -353,6 +403,8 @@ function gwvp_UserAdminPageBody()
                $ingroups = gwvp_getGroupsForUser($email);
                
                $ownedgroups = gwvp_getGroupsOwnedByUser($email);
+               //echo "vardump: ";
+               //var_dump($ownedgroups);
                $ugroups = "";
                if($ownedgroups == false) $ogroups = "-";
                else {
@@ -363,9 +415,9 @@ function gwvp_UserAdminPageBody()
                trim($ugroups);
                
                
-               foreach($ingroups as $grname) {
+               if($ingroups !== false) foreach($ingroups as $grname) {
                        $isownedgroup = false;
-                       foreach($ownedgroups as $gr_u) {
+                       if($ownedgroups !== false) foreach($ownedgroups as $gr_u) {
                                if($grname == $gr_u) $isownedgroup = true;
                        }
                        if(!$isownedgroup) $ugroups .= "$grname<br>";