X-Git-Url: http://git.pjr.cc/?p=gwvp.git;a=blobdiff_plain;f=gwvplib%2Fgwvpuseradmin.php;h=1d3e83dbc5cc6d934bfc8e93eff2b503cdb5c46b;hp=7ccfb9b4073503038870c9d99199f98b7666914f;hb=6d9db0b0d2928d864c9e1541f255b640ec295d6f;hpb=74399e0d5226d43656c618451b4e6fc06702e5ab diff --git a/gwvplib/gwvpuseradmin.php b/gwvplib/gwvpuseradmin.php index 7ccfb9b..1d3e83d 100644 --- a/gwvplib/gwvpuseradmin.php +++ b/gwvplib/gwvpuseradmin.php @@ -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; @@ -53,6 +56,51 @@ function gwvp_AddUserPage() $username = $_REQUEST["username"]; $desc = $_REQUEST["desc"]; + // now for some validation + $sendback = false; + $message = ""; + if(!gwvp_checkEmail($email)) { + $sendback = true; + $message .= "EMail address invalid. "; + } + + // function gwvp_getUser($username=null, $email=null, $id=null) + if(gwvp_getUser(null, $email, null)!=null) { + $staremail = true; + $sendback = true; + $message .= "EMail address already registered. "; + } + + if(gwvp_getUser($username)!= null) { + $starusername = true; + $sendback = true; + $message .= "Username already exists. "; + } + + if($pass1 != $pass2) { + $starpass = true; + $sendback = true; + $message .= "Passwords dont match. "; + } + + // otherwise, its all good, proceed with user creation + if($sendback) { + $_SESSION["sendback_owner"] = "users"; + $sb["email"] = $email; + if($staremail) $sb["emailstar"] = true; + $sb["fullname"] = $fullname; + $sb["username"] = $username; + if($starusername) $sb["usernamestar"] = true; + $sb["desc"] = $desc; + if($starpass) $sb["passwordstar"] = true; + + $_SESSION["sendback"] = true; + $_SESSION["sendback_data"] = base64_encode(serialize($sb)); + gwvp_SendMessage("error", "$message"); + header("Location: $BASE_URL/admin/users"); + return; + } + // 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"); @@ -86,13 +134,42 @@ function gwvp_AddGroupPage() */ global $BASE_URL; + /* + * $presetname = " value=\"".$data["groupname"]."\""; + $presetdesc = " value=\"".$data["groupdesc"]."\""; + $presetgroupadmin = " ".$data["admingroup"]."\""; + $presetowner = " value=\"".$data["groupowner"]."\""; + + */ + $gname = $_REQUEST["groupname"]; $isadmin = isset($_REQUEST["admingroup"]); $gdesc = $_REQUEST["groupdesc"]; $owner = $_REQUEST["groupowner"]; + if(gwvp_getGroup(null, $gname)) { + $_SESSION["sendback_owner"] = "groups"; + $_SESSION["sendback"] = true; + + $data["groupname"] = $gname; + $data["groupdesc"] = $gdesc; + $data["groupowner"] = $owner; + if($isadmin) $data["admingroup"] = "checked"; + else $data["admingroup"] = ""; + $data["groupnamestar"] = true; + + gwvp_SendMessage("error", "Group name in use"); + + $_SESSION["sendback_data"] = base64_encode(serialize($data)); + + header("Location: $BASE_URL/admin/users"); + return; + } + // 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 +211,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 +293,7 @@ function gwvp_ModifyGroupPageBody() // members - echo ""; foreach($users as $u_users) { $uid = $u_users["id"]; $email = $u_users["email"]; @@ -199,7 +321,7 @@ function gwvp_ModifyGroupPageBody() // all users - echo ""; foreach($users as $u_users) { $uid = $u_users["id"]; $email = $u_users["email"]; @@ -259,6 +381,45 @@ function gwvp_UserAdminPageBody() // admin only bit if($LOGIN_TYPE == "admin") { + $data = null; + + $staremail = ""; + $starpass = ""; + $starusername = ""; + $presetemail = ""; + $presetfullname = ""; + $presetdesc = ""; + $presetusername = ""; + + if(isset($_SESSION["sendback_owner"])) { + if($_SESSION["sendback_owner"] == "users") { + /* + * $sb["email"] = $email; + if($staremail) $sb["emailstar"] = true; + $sb["fullname"] = $fullname; + $sb["username"] = $username; + if($starusername) $sb["usernamestar"] = true; + $sb["desc"] = $desc; + if($starpass) $sb["passwordstar"] = true; + + */ + $data = unserialize(base64_decode($_SESSION["sendback_data"])); + + $presetemail = " value=\"".$data["email"]."\""; + $presetfullname = " value=\"".$data["fullname"]."\""; + $presetusername = " value=\"".$data["username"]."\""; + $presetdesc = " value=\"".$data["desc"]."\""; + + if(isset($data["emailstar"])) $staremail = ""; + if(isset($data["usernamestar"])) $starusername = ""; + if(isset($data["passwordstar"])) $starpass = ""; + + unset($_SESSION["sendback"]); + unset($_SESSION["sendback_data"]); + unset($_SESSION["sendback_owner"]); + } + } + echo "

Create User

Create Group

"; // create user bit @@ -266,31 +427,68 @@ function gwvp_UserAdminPageBody() echo "
"; echo ""; - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; echo ""; echo "
EMailFull Name
PasswordPassword Confirm
UsernameDescription
EMail$staremailFull Name
Password$starpassPassword Confirm$starpass
Username$starusernameDescription
"; echo "
"; echo ""; + $stargroupname = ""; + $presetname = ""; + $presetgroupadmin = ""; + $presetowner = -1; + + if(isset($_SESSION["sendback_owner"])) { + if($_SESSION["sendback_owner"] == "groups") { + /* + * $sb["email"] = $email; + if($staremail) $sb["emailstar"] = true; + $sb["fullname"] = $fullname; + $sb["username"] = $username; + if($starusername) $sb["usernamestar"] = true; + $sb["desc"] = $desc; + if($starpass) $sb["passwordstar"] = true; + + */ + $data = unserialize(base64_decode($_SESSION["sendback_data"])); + + $presetname = " value=\"".$data["groupname"]."\""; + $presetdesc = " value=\"".$data["groupdesc"]."\""; + $presetgroupadmin = " ".$data["admingroup"]; + $presetowner = $data["groupowner"]; + + if(isset($data["groupnamestar"])) $stargroupname = ""; + + unset($_SESSION["sendback"]); + unset($_SESSION["sendback_data"]); + unset($_SESSION["sendback_owner"]); + } + } + // Create group echo "
"; echo ""; - echo ""; - echo ""; - echo ""; + echo ""; + echo ""; + echo ""; echo ""; @@ -353,6 +551,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 +563,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
";
Group Name
Group Description
Admin Group?
Group Name$stargroupname
Group Description
Admin Group?
Owner