X-Git-Url: http://git.pjr.cc/?p=gwvp.git;a=blobdiff_plain;f=gwvplib%2Fgwvpuseradmin.php;h=abe586ec5473f4d3212f405e36aa2c56fa3931de;hp=af44eb6845a0c60d949952c970ea98fd9a6ab7a5;hb=4f4bf1da18181d412cd755143e016ede587cc1d6;hpb=4c20cd2f33699e549a06995d9c5ab1374cceeaee diff --git a/gwvplib/gwvpuseradmin.php b/gwvplib/gwvpuseradmin.php index af44eb6..abe586e 100644 --- a/gwvplib/gwvpuseradmin.php +++ b/gwvplib/gwvpuseradmin.php @@ -11,22 +11,644 @@ 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 "groupmember": + return "gwvp_groupMemberChange"; + 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"]; + $sendvalid = isset($_REQUEST["sendvalidation"]); + + // 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. "; + } + + if($pass1 == "" && $pass2 == "" && !$sendvalid) { + $starpass = true; + $sendback = true; + $message .= "Password was blank. "; + } + + // 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"); + 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 "EMail"; + echo "Full Name"; + echo "Password"; + echo "Password Confirm"; + echo "Username"; + echo "Description"; + */ + +} + +function gwvp_AddGroupPage() +{ + /* + * echo "Group Name"; + echo "Admin Group?"; + echo "Owner
"; + echo "Admin"; + echo ""; + + echo ""; + echo ""; + + echo "

Group Membership

"; + echo "
"; + echo ""; + + echo "
MembersAll Users
"; + + + // members + echo ""; + + + echo ""; + + // move buttons + echo "
"; + echo ">\">
"; + + + + echo "
"; + + + // all users + echo ""; + + + + echo "
"; + echo "
"; + + + + + + return; +} function gwvp_UserAdminPageBody() { - echo "I am a repo admin page body"; + global $LOGIN_TYPE, $BASE_URL; + + $groups = gwvp_getGroups(); + $users = gwvp_getUsers(); + + echo "

Users and Groups

"; + echo "On this page you can manage users, groups, group membership and update your profile
"; + echo ""; + + echo ""; + + + // Header part of table + // user self-management bit + if($LOGIN_TYPE != "anon") { + echo ""; + + echo ""; + // user profile bit + echo ""; + + // now the group bit for the user + echo ""; + echo ""; + + echo ""; + } + + // 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 bit + echo ""; + echo ""; + } + + + + // TODO: whats seen here will depend GREATLY on setting in config - need to fix this later + // user list + echo ""; + + echo "

My Profile

My Groups

"; + echo "User profile bits go here"; + echo ""; + echo "User owned groups, and groups their a member of go here"; + echo "

Create User

Create Group

"; + + echo "
"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "
EMail$staremailFull Name
Password$starpassPassword Confirm$starpass
Username$starusernameDescription
Set account locked and send validation email for initial passsword (not implemented)
"; + 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 "
Group Name$stargroupname
Group Description
Admin Group?
Owner
"; + echo "
"; + + + echo "

Users

Groups

"; + echo ""; + switch($LOGIN_TYPE) { + case "anon": + echo ""; + break; + case "admin": + echo ""; + break; + case "user": + echo ""; + break; + } + + /* + * $returns[$rn]["id"] = $u_res["users_id"]; + $returns[$rn]["fullname"] = $u_res["user_full_name"]; + $returns[$rn]["password"] = $u_res["user_password"]; + $returns[$rn]["username"] = $u_res["user_username"]; + $returns[$rn]["email"] = $u_res["user_email"]; + $returns[$rn]["desc"] = $u_res["user_desc"]; + $returns[$rn]["status"] = $u_res["user_status"]; + + */ + foreach($users as $u_users) { + $userid = $u_users["id"]; + $email = $u_users["email"]; + $fullname = $u_users["fullname"]; + $username = $u_users["username"]; + $desc = $u_users["desc"]; + $status = $u_users["status"]; + if(gwvp_IsUserAdmin($email) == 1) { + $globaladmin = "Yes"; + } else { + $globaladmin = "No"; + } + + + // TODO: sort out group prints here + $ingroups = gwvp_getGroupsForUser($email); + + $ownedgroups = gwvp_getGroupsOwnedByUser($email); + //echo "vardump: "; + //var_dump($ownedgroups); + $ugroups = ""; + if($ownedgroups == false) $ogroups = "-"; + else { + foreach($ownedgroups as $gr_u) { + $ugroups .= "$gr_u
"; + } + } + trim($ugroups); + + + if($ingroups !== false) foreach($ingroups as $grname) { + $isownedgroup = false; + if($ownedgroups !== false) foreach($ownedgroups as $gr_u) { + if($grname == $gr_u) $isownedgroup = true; + } + if(!$isownedgroup) $ugroups .= "$grname
"; + } + trim($ugroups); + + if($ugroups == "") $ugroups = "-"; + + switch($LOGIN_TYPE) { + case "anon": + echo ""; + break; + case "admin": + echo ""; + echo ""; + break; + case "user": + echo ""; + break; + } + + + } + echo "
UsernameGroupsDescription
EMailUsernameFull NameGroupsDescriptionAdmin?StatusModify
UsernameGroupsDescription
$username$ugroups$desc
$email$username$fullname$ugroups$desc$globaladmin$statusModify
$username$ugroups$desc
"; + + echo "
"; + + // group part of table + + echo ""; + + switch($LOGIN_TYPE) { + case "anon": + echo ""; + break; + case "admin": + echo ""; + break; + case "user": + echo ""; + break; + } + + foreach($groups as $u_groups) { + /* + * $returns[$rn]["id"] = $u_res["groups_id"]; + $returns[$rn]["name"] = $u_res["groups_name"]; + if($u_res["groups_is_admin"]=="1") $return[$rn]["admin"] = true; + else $return[$rn]["admin"] = false; + $returns[$rn]["admin"] = $u_res["groups_is_admin"]; + $returns[$rn]["ownerid"] = $u_res["groups_owner_id"]; + + */ + $gname = $u_groups["name"]; + $gid = $u_groups["id"]; + $owner = gwvp_getUserEmail($u_groups["ownerid"]); + if($u_groups["admin"]) $gadmin = "Yes"; + else $gadmin = "No"; + + switch($LOGIN_TYPE) { + case "anon": + echo ""; + break; + case "admin": + echo ""; + break; + case "user": + echo ""; + break; + } + + + } + echo "
Group NameOwner
Group NameOwnerAdmin Group?Modify
Group NameOwnerAdmin Group?
$gname$owner
$gname$owner$gadminModify
$gname$owner$gadmin
"; + echo "
"; }