case "adduser":
return "gwvp_AddUserPage";
break;
+ case "groupmember":
+ return "gwvp_groupMemberChange";
+ break;
case "addgroup":
return "gwvp_AddGroupPage";
break;
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 "<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;
+
+ /*
+ * $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");
+ return;
}
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;
+
$gid = -1;
if(isset($_REQUEST["q"])) {
$query = $_REQUEST["q"];
$gid = $qspl[3];
}
- echo "modify group $gid";
+ $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=\"membersin[]\" size=\"20\" multiple=\"true\">";
+ 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=\"membersout[]\" size=\"20\" multiple=\"true\">";
+ 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()
// 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 = "<img src=\"$BASE_URL/images/star.jpg\">";
+ if(isset($data["usernamestar"])) $starusername = "<img src=\"$BASE_URL/images/star.jpg\">";
+ if(isset($data["passwordstar"])) $starpass = "<img src=\"$BASE_URL/images/star.jpg\">";
+
+ unset($_SESSION["sendback"]);
+ unset($_SESSION["sendback_data"]);
+ unset($_SESSION["sendback_owner"]);
+ }
+ }
+
echo "<tr><td valign=\"top\"><h3>Create User</h3></td><td><h3>Create Group</h3></td></tr>";
// create user bit
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>";
- 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>";
+ echo "<tr><td bgcolor=\"#eeffee\">EMail</td><td><input type=\"text\" name=\"email\"$presetemail>$staremail</td>";
+ echo "<td bgcolor=\"#eeffee\">Full Name</td><td><input type=\"text\" name=\"fullname\"$presetfullname></td></tr>";
+ echo "<tr><td bgcolor=\"#eeffee\">Password</td><td><input type=\"text\" name=\"pass1\">$starpass</td>";
+ echo "<td bgcolor=\"#eeffee\">Password Confirm</td><td><input type=\"text\" name=\"pass2\">$starpass</td></tr>";
+ echo "<tr><td bgcolor=\"#eeffee\">Username</td><td><input type=\"text\" name=\"username\"$presetusername>$starusername</td>";
+ echo "<td bgcolor=\"#eeffee\">Description</td><td><input type=\"text\" name=\"desc\"$presetdesc></td></tr>";
+ echo "<tr><td colspan=\"4\"><input type=\"checkbox\" name=\"sendvalidation\"> Set account locked and send validation email for initial passsword (not implemented)</td></tr>";
echo "<tr><td><input type=\"submit\" name=\"Create\" value=\"Create\" class=\"buttons\"></td></tr>";
echo "</table>";
echo "</form>";
echo "</td><td valign=\"top\">";
+ $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 = "<img src=\"$BASE_URL/images/star.jpg\">";
+
+ unset($_SESSION["sendback"]);
+ unset($_SESSION["sendback_data"]);
+ unset($_SESSION["sendback_owner"]);
+ }
+ }
+
// Create group
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>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\">";
+ echo "<tr><td bgcolor=\"#ddddff\">Group Name</td><td bgcolor=\"#ddffdd\"><input type=\"text\" name=\"groupname\"$presetname>$stargroupname<td></tr>";
+ echo "<tr><td bgcolor=\"#ddddff\">Group Description</td><td bgcolor=\"#ddffdd\"><input type=\"text\" name=\"groupdesc\"$presetdesc><td></tr>";
+ echo "<tr><td bgcolor=\"#ddddff\">Admin Group?</td><td bgcolor=\"#ddffdd\"><input type=\"checkbox\" name=\"admingroup\" class=\"mycheckbox\"$presetgroupadmin></td></tr>";
+ echo "<tr><td bgcolor=\"#ddddff\">Owner</td><td bgcolor=\"#ddffdd\"><div><select class=\"myselect\" name=\"groupowner\">";
foreach($users as $u_users) {
$uid = $u_users["id"];
$email = $u_users["email"];
$username = $u_users["username"];
$fullname = $u_users["fullname"];
- echo "<option value=\"$uid\">$username, $fullname ($email)</option>";
+ if($presetowner == $uid) {
+ echo "<option value=\"$uid\" selected>$username, $fullname ($email)</option>";
+ } else {
+ echo "<option value=\"$uid\">$username, $fullname ($email)</option>";
+ }
+
}
echo "</select></div></td></tr>";
$ingroups = gwvp_getGroupsForUser($email);
$ownedgroups = gwvp_getGroupsOwnedByUser($email);
+ //echo "vardump: ";
+ //var_dump($ownedgroups);
$ugroups = "";
if($ownedgroups == false) $ogroups = "-";
else {
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>";
}
trim($ugroups);
+ if($ugroups == "") $ugroups = "-";
+
switch($LOGIN_TYPE) {
case "anon":
echo "<tr><td>$username</td><td>$ugroups</td><td>$desc</td></tr>";