<?php
-if(gwvpmini_isLoggedIn()) if(gwvpmini_isUserAdmin()) {
- $MENU_ITEMS["20repos"]["text"] = "Administration";\r
- $MENU_ITEMS["20repos"]["link"] = "$BASE_URL/admin";
- $CALL_ME_FUNCTIONS["admin"] = "gwvpmini_AdminCallMe";
+
+if($IS_WEB_REQUEST) {
+ if(gwvpmini_isLoggedIn()) if(gwvpmini_isUserAdmin()) {
+ $MENU_ITEMS["20repos"]["text"] = "Administration";\r
+ $MENU_ITEMS["20repos"]["link"] = "$BASE_URL/admin";
+ $CALL_ME_FUNCTIONS["admin"] = "gwvpmini_AdminCallMe";
+ }
+
+
}
function gwvpmini_AdminCallMe()\r
{\r
\r
- error_log("in admin callme");\r
+ //error_log("in admin callme");\r
if(isset($_REQUEST["q"])) {\r
$query = $_REQUEST["q"];\r
$qspl = explode("/", $query);\r
if(isset($qspl[0])) {\r
if($qspl[0] == "admin") {\r
if(isset($qspl[1])) {\r
- if($qspl[1] == "create") {\r
- return "gwvpmini_RepoCreate";\r
+ if($qspl[1] == "user") {\r
+ return "gwvpmini_AdminUserCreate";\r
+ }
+ if($qspl[1] == "changereg") {
+ return "gwvpmini_ChangeRegistration";
+ }
+ if($qspl[1] == "changeconfirm") {
+ return "gwvpmini_ChangeRegConfig";
+ }
+ if($qspl[1] == "changefromemail") {
+ return "gwvpmini_ChangeFromAddress";
+ }
+ if($qspl[1] == "removeuser") {
+ return "gwvpmini_RemoveUserPage";
}\r
+ if($qspl[1] == "removerepo") {
+ return "gwvpmini_RemoveRepoPage";
+ }
+ if($qspl[1] == "confremoveuser") {
+ return "gwvpmini_ConfRemoveUser";
+ }
+ if($qspl[1] == "confremoverepo") {
+ return "gwvpmini_ConfRemoveRepo";
+ }
+ if($qspl[1] == "switchenable") {
+ return "gwvpmini_SwitchEnableUser";
+ }
+ if($qspl[1] == "switchenablerepo") {
+ return "gwvpmini_SwitchEnableRepo";
+ }
+ if($qspl[1] == "changegravs") {
+ return "gwvpmini_SwitchGravatars";
+ }
+ if($qspl[1] == "changessl") {
+ return "gwvpmini_SwitchForceSSL";
+ }
+ if($qspl[1] == "switchadmin") {
+ return "gwvpmini_SwitchAdmin";
+ }
} else {\r
error_log("i got here, where next?");\r
return "gwvpmini_AdminMainPage";\r
\r
return false;\r
}
+\r
+function gwvpmini_RemoveRepoPage()\r
+{\r
+ gwvpmini_goMainPage("gwvpmini_RemoveRepoPageBody");\r
+\r
+}\r
+\r
+
+function gwvpmini_RemoveUserPage()
+{
+ gwvpmini_goMainPage("gwvpmini_RemoveUserPageBody");
+
+}
function gwvpmini_AdminMainPage()
{
function gwvpmini_AdminMainPageBody()
{
global $BASE_URL;
+ global $can_register, $reg_reqs_confirm, $confirm_from_address, $use_gravatar, $force_ssl;
+
+ if($can_register) {
+ $register = "Registration Enabled (<a href=\"$BASE_URL/admin/changereg\">Disable</a>)";
+ } else {
+ $register = "Registration Disabled (<a href=\"$BASE_URL/admin/changereg\">Enable</a>)";
+ }
+
+ if($reg_reqs_confirm) {
+ $regconfirm = "Registration Requires Confirmation (<a href=\"$BASE_URL/admin/changeconfirm\">Disable</a>)";
+ } else {
+ $regconfirm = "Registration Doesnt Require Confirmation (<a href=\"$BASE_URL/admin/changeconfirm\">Enable</a>)";
+ }
+
+ if($use_gravatar) {
+ $usegrav = "Gravatars are enabled (<a href=\"$BASE_URL/admin/changegravs\">Disable</a>)";
+ } else {
+ $usegrav = "Gravatars are disabled (<a href=\"$BASE_URL/admin/changegravs\">Enable</a>)";
+ }
+
+ if($force_ssl) {\r
+ $forcessl = "Force SSL is enabled (<a href=\"$BASE_URL/admin/changessl\">Disable</a>)";\r
+ } else {\r
+ $forcessl = "Force SSL is disabled (<a href=\"$BASE_URL/admin/changessl\">Enable</a>)";\r
+ }\r
+
$totalusers = gwvpmini_GetNUsers();
+ echo "<table><tr valign=\"top\"><td>";
+ echo "$register<br>$regconfirm<br>$usegrav<br>$forcessl<br>";
echo "<h2>Users - $totalusers</h2>";
+ echo "<form method=\"post\" action=\"$BASE_URL/admin/changefromemail\">";
+ echo "Address emails are sent from <input type=\"text\" name=\"fromemail\" value=\"$confirm_from_address\"><input type=\"submit\" name=\"Update\" value=\"Update\"><br>";
+ echo "</form>";
+
echo "<table border=\"1\">";
- echo "<tr><th>Username</th><th>Email Address</th><th>Full Name</th><th>Description</th><th>Control</th></tr>";
+ echo "<tr><th>Username</th><th>Email Address</th><th>Full Name</th><th>Description</th><th>Status</th><th>Control</th></tr>";
foreach(gwvpmini_GetUsers() as $key => $val) {
$id = $key;
$un = $val["username"];
$em = $val["email"];
$fn = $val["fullname"];
$ds = $val["desc"];
- echo "<tr><td>$un</td><td>$em</td><td>$fn</td><td>$ds</td><td><a href=\"$BASE_URL/admin/removeuser&id=$id\">Remove</a> <a href=\"$BASE_URL/admin/disableuser&id=$id\">Disable</a></td></tr>";
+ $st_t = $val["status"];
+ $st_l = $val["level"];
+
+ $astat = "0";
+ $cstat = "WTF";
+ $level = "WTF";
+ if($st_l == 0) $level = "<a href=\"$BASE_URL/admin/switchadmin/1/$id\">User</a>";
+ if($st_l == 1) $level = "<a href=\"$BASE_URL/admin/switchadmin/0/$id\">Admin</a>";
+
+ $status = "";
+ if($st_t[0] == "1") {
+ $status = ", Disabled";
+ $astat = 0;
+ $cstat = "Enable";
+ } else if ($st_t[0] == "0") {
+ $astat = 1;
+ $cstat = "Disable";
+ } else if($st_t[0] == "2") {
+ $vl = explode(":", $st_t);
+ error_log("VL: ".print_r($vl, true));
+ $status = " Awaiting Confirmation (<a href=\"$BASE_URL/register/confirmreg/".$vl[1]."\">Confirm</a>)";
+ }
+
+ $st = "$level$status";
+
+ $unlval = "<a href=\"$BASE_URL/user/$un\">$un</a>";
+ echo "<tr><td>$unlval</td><td>$em</td><td>$fn</td><td>$ds</td><td>$st</td>";
+ if($id != $_SESSION["id"]) {
+ echo "<td><a href=\"$BASE_URL/admin/removeuser/$id\">Remove</a> ";
+ if ($st_t[0] == "0"||$st_t[0] == "1") echo "<a href=\"$BASE_URL/admin/switchenable/$astat/$id\">$cstat</a></td></tr>";
+ else echo "</td></tr>";
+ } else {
+ echo "<td> -- </td></tr>";
+ }
}
+
+
+ echo "</table>";
+ echo "</td><td>";
+ echo "<h3>Create User</h3>";
+ echo "<form method=\"post\" action=\"$BASE_URL/admin/user/create\">";
+ echo "<table border=\"1\">";\r
+ echo "<tr><th>Username</th><td><input type=\"text\" name=\"username\"></td></tr>";
+ echo "<tr><th>Password</th><td><input type=\"password\" name=\"password\"></td></tr>";
+ echo "<tr><th>Confirm Password</th><td><input type=\"password\" name=\"confpassword\"></td></tr>";
+ echo "<tr><th>Full Name</th><td><input type=\"text\" name=\"fullname\"></td></tr>";
+ echo "<tr><th>Description</th><td><input type=\"text\" name=\"desc\"></td></tr>";
+ echo "<tr><th>Email</th><td><input type=\"text\" name=\"email\"></td></tr>";
+ echo "<tr><th>Confirm Email</th><td><input type=\"text\" name=\"confemail\"></td></tr>";
+ echo "<tr><th>Admin?</th><td><input type=\"checkbox\" name=\"isadmin\"></td></tr>";
+ echo "<tr><td colspan=\"2\"><input type=\"submit\" name=\"Add\" value=\"Add\"></td></tr>";
echo "</table>";
+ echo "</form>";
+ echo "</td></tr></table>";
$totalrepos = gwvpmini_GetNRepos();
echo "<h2>Repo's - $totalrepos</h2>";
$rn = $val["name"];
$ds = $val["desc"];
$ow = $val["owner"];
- echo "<tr><td>$rn</td><td>$ds</td><td>$ow</td><td><a href=\"$BASE_URL/admin/removeuser&id=$id\">Remove</a> <a href=\"$BASE_URL/admin/disableuser&id=$id\">Disable</a></td></tr>";
+ $st = $val["status"];
+ $udet = gwvpmini_getUser(null, null, $ow);
+ if(!$udet) {
+ $owl = "Orphaned";
+ } else {
+ $owl = $udet["username"]." (".$udet["id"].") - ".$udet["fullname"]." (".$udet["email"].") - <a href=\"mailto:".$udet["email"]."\">Email Owner</a>";
+ }
+
+ if($st == 1) {
+ $stat = 0;
+ $cstat = "Enable";
+ } else {
+ $stat = 1;\r
+ $cstat = "Disable";
+ }
+
+ echo "<tr><td><a href=\"$BASE_URL/view/$rn\">$rn</a></td><td>$ds</td><td>$owl</td><td><a href=\"$BASE_URL/admin/removerepo/$id\">Remove</a> <a href=\"$BASE_URL/admin/switchenablerepo/$stat/$id\">$cstat</a></td></tr>";
+
}
echo "</table>";
}\r
+
+function gwvpmini_AdminUserCreate()
+{
+ global $BASE_URL;
+
+ $name = $_REQUEST["username"];
+ $pass1 = $_REQUEST["password"];
+ $pass2 = $_REQUEST["confpassword"];\r
+ $fname = $_REQUEST["fullname"];
+ $desc = $_REQUEST["desc"];
+ $email1 = $_REQUEST["email"];\r
+ $email2 = $_REQUEST["confemail"];
+ if(isset($_REQUEST["isadmin"])) $level = 1;
+ else $level = 0;\r
+
+ $id = gwvpmini_GetUserId($name);
+
+ if(!$id) {
+ if($pass1 != $pass2) {
+ gwvpmini_SendMessage("error", "Passwords dont match");
+ header("Location: $BASE_URL/admin");
+ return;
+ }
+ if($email1 != $email2) {
+ gwvpmini_SendMessage("error", "Email Addresses dont match");
+ header("Location: $BASE_URL/admin");
+ return;
+ }
+
+ gwvpmini_AddUser($name, $pass1, $fname, $email1, $desc, $level, 0);
+ gwvpmini_SendMessage("info", "User $fname created");
+ } else {
+ gwvpmini_SendMessage("error", "User $name already exists, cant create");
+ }
+
+ header("Location: $BASE_URL/admin");
+ return;
+
+}
+
+
+function gwvpmini_ChangeRegistration()
+{
+ global $can_register, $BASE_URL;
+
+ if($can_register) {
+ gwvpmini_setConfigVal("canregister", "0");
+ gwvpmini_SendMessage("info", "Registration disabled");
+ } else {
+ gwvpmini_setConfigVal("canregister", "1");\r
+ gwvpmini_SendMessage("info", "Registration enabled");
+ }
+
+ header("Location: $BASE_URL/admin");
+}
+
+
+function gwvpmini_ChangeRegConfig()
+{
+ global $reg_reqs_confirm, $BASE_URL;\r
+ \r
+ if($reg_reqs_confirm) {\r
+ gwvpmini_setConfigVal("registerrequiresconfirm", "0");\r
+ gwvpmini_SendMessage("info", "Registration Confirmation disabled");\r
+ } else {\r
+ gwvpmini_setConfigVal("registerrequiresconfirm", "1");\r
+ gwvpmini_SendMessage("info", "Registration Confirmation enabled");\r
+ }\r
+ \r
+ header("Location: $BASE_URL/admin");
+}
+
+function gwvpmini_ChangeFromAddress()
+{
+ global $BASE_URL;
+
+ $newfrom = $_REQUEST["fromemail"];\r
+ \r
+ gwvpmini_setConfigVal("eamilfromaddress", "$newfrom");\r
+ gwvpmini_SendMessage("info", "Email from address updated to \"$newfrom\"");\r
+ \r
+ header("Location: $BASE_URL/admin");\r
+
+}
+
+function gwvpmini_RemoveUserPageBody()
+{
+ global $BASE_URL;
+
+ $uid = -1;
+ if(isset($_REQUEST["q"])) {\r
+ $query = $_REQUEST["q"];\r
+ $qspl = explode("/", $query);\r
+ if(isset($qspl[2])) {
+ $uid = $qspl[2];\r
+ }
+ }
+
+ if($uid != -1) {
+ $details = gwvpmini_GetUsers($uid, 1);
+ $username = $details[$uid]["username"];
+ $fullname = $details[$uid]["fullname"];
+ $email = $details[$uid]["email"];
+ $desc = $details[$uid]["desc"];
+
+ error_log("user dets:".print_r($details, true));
+
+ echo "<h2>Remove User?</h2>";
+ echo "Are you sure you wish to remove the user, $username ($uid) - $fullname - $email - $desc?<br>";
+ echo "<a href=\"$BASE_URL/admin/confremoveuser/$uid\">Yes</a> <a href=\"$BASE_URL/admin\">No</a><br>";
+ } else {
+ echo "<h2>How?</h2>";
+ echo "You got here in a weird way or the uid of the user you were trying to delete is invalid<br>";
+ echo "<a href=\"$BASE_URL/admin\">Go Back</a>";
+ }
+
+}
+
+function gwvpmini_RemoveRepoPageBody()\r
+{\r
+ global $BASE_URL;\r
+\r
+ $rid = -1;
+ $uid = -1;\r
+ if(isset($_REQUEST["q"])) {\r
+ $query = $_REQUEST["q"];\r
+ $qspl = explode("/", $query);\r
+ if(isset($qspl[2])) {\r
+ $rid = $qspl[2];\r
+ }\r
+ }
+
+ $repdet = gwvpmini_getRepo(null, null, $rid);
+ if($repdet != false) $uid = $repdet["ownerid"];
+ $usedet = gwvpmini_getUser(null, null, $uid);\r
+ \r
+\r
+ if($rid != -1) {
+ $rname = $repdet["name"];
+ $rdesc = $repdet["desc"];
+ if($usedet == false) {
+ $ownedby = "which is unowned (Orphaned)";
+ } else {
+ $ownedby = "owned by <b>$username</b> ($uid) - \"$fullname\"";
+ }
+ $username = $usedet["username"];
+ $fullname = $usedet["fullname"];
+ \r
+\r
+ error_log("user dets:".print_r($details, true));\r
+\r
+ echo "<h2>Remove User?</h2>";\r
+ echo "Are you sure you wish to remove the repo, <b>$rname</b> ($rid) - \"$rdesc\" $ownedby?<br>";\r
+ echo "<a href=\"$BASE_URL/admin/confremoverepo/$rid\">Yes</a> <a href=\"$BASE_URL/admin\">No</a><br>";\r
+ } else {\r
+ echo "<h2>How?</h2>";\r
+ echo "You got here in a weird way or the uid of the repo you were trying to delete is invalid<br>";\r
+ echo "<a href=\"$BASE_URL/admin\">Go Back</a>";\r
+ }\r
+\r
+}
+
+function gwvpmini_ConfRemoveRepo()\r
+{\r
+ global $BASE_URL;\r
+
+
+ error_log("CONF REMOVE REPO");
+ \r
+ $rid = -1;\r
+ if(isset($_REQUEST["q"])) {\r
+ $query = $_REQUEST["q"];\r
+ $qspl = explode("/", $query);\r
+ if(isset($qspl[2])) {\r
+ $rid = $qspl[2];\r
+ }\r
+ }\r
+\r
+ if($rid > 0) {\r
+ $details = gwvpmini_getRepo(null, null, $rid);\r
+ $rname = $details["name"];\r
+ gwvpmini_RemoveRepo($rid);\r
+ gwvpmini_SendMessage("info", "Repo $rname ($rid) has been removed");\r
+ } else {\r
+ gwvpmini_SendMessage("info", "Problem deleteing repo with rid $rid");\r
+ }\r
+\r
+ header("Location: $BASE_URL/admin");\r
+}
+
+function gwvpmini_ConfRemoveUser()\r
+{\r
+ global $BASE_URL;\r
+\r
+ $uid = -1;\r
+ if(isset($_REQUEST["q"])) {\r
+ $query = $_REQUEST["q"];\r
+ $qspl = explode("/", $query);\r
+ if(isset($qspl[2])) {\r
+ $uid = $qspl[2];\r
+ }\r
+ }\r
+\r
+ if($uid > 0) {
+ $details = gwvpmini_getUser(null, null, $uid);
+ $uname = $details["username"];
+ gwvpmini_RemoveUser($uid);
+ gwvpmini_SendMessage("info", "User $uname ($uid) has been removed");\r
+ } else {
+ gwvpmini_SendMessage("info", "Problem deleteing user with uid $uid");
+ }\r
+
+ header("Location: $BASE_URL/admin");\r
+}
+
+function gwvpmini_SwitchEnableUser()\r
+{
+ global $BASE_URL;\r
+ \r
+ $uid = -1;
+ $newst = -1;\r
+ if(isset($_REQUEST["q"])) {\r
+ $query = $_REQUEST["q"];\r
+ $qspl = explode("/", $query);\r
+ if(isset($qspl[2])) {\r
+ $newst = $qspl[2];\r
+ }
+ if(isset($qspl[3])) {
+ $uid = $qspl[3];
+ }\r
+ }
+
+ if($newst == 1) $stat = "disabled";
+ else $stat = "enabled";\r
+ \r
+ if($uid > 0 && ($newst == 1 || $newst == 0)) {\r
+ $details = gwvpmini_getUser(null, null, $uid);\r
+ $uname = $details["username"];\r
+ if($newst == 1) gwvpmini_DisableUser($uid);
+ if($newst == 0) gwvpmini_EnableUser($uid);\r
+ gwvpmini_SendMessage("info", "User $uname ($uid) has been $stat");\r
+ } else {\r
+ gwvpmini_SendMessage("info", "Problem disabling user with uid $uid");\r
+ }\r
+ \r
+ header("Location: $BASE_URL/admin");\r
+
+}
+
+function gwvpmini_SwitchAdmin()
+{
+ global $BASE_URL;\r
+ \r
+ $uid = -1;\r
+ $newst = -1;\r
+ if(isset($_REQUEST["q"])) {\r
+ $query = $_REQUEST["q"];\r
+ $qspl = explode("/", $query);\r
+ if(isset($qspl[2])) {\r
+ $newst = $qspl[2];\r
+ }\r
+ if(isset($qspl[3])) {\r
+ $uid = $qspl[3];\r
+ }\r
+ }\r
+ \r
+
+ if($uid > 0 && $newst >= 0) {
+ gwvpmini_SetUserStatusAdmin($uid, $newst);
+ if($newst == 0) {
+ gwvpmini_SendMessage("info", "User is no longer an admin");
+ } else {
+ gwvpmini_SendMessage("info", "User is now an admin");
+ }
+ } else gwvpmini_SendMessage("error", "Invalid user id");
+ \r
+ \r
+ header("Location: $BASE_URL/admin");
+}
+
+function gwvpmini_SwitchEnableRepo()
+{
+ global $BASE_URL;\r
+ \r
+ $rid = -1;\r
+ $newst = -1;\r
+ if(isset($_REQUEST["q"])) {\r
+ $query = $_REQUEST["q"];\r
+ $qspl = explode("/", $query);\r
+ if(isset($qspl[2])) {\r
+ $newst = $qspl[2];\r
+ }\r
+ if(isset($qspl[3])) {\r
+ $rid = $qspl[3];\r
+ }\r
+ }\r
+ \r
+ if($newst == 1) $stat = "disabled";\r
+ else $stat = "enabled";\r
+ \r
+ if($rid > 0 && ($newst == 1 || $newst == 0)) {\r
+ $details = gwvpmini_getRepo(null, null, $rid);\r
+ if($newst == 1) gwvpmini_DisableRepo($rid);\r
+ if($newst == 0) gwvpmini_EnableRepo($rid);\r
+ gwvpmini_SendMessage("info", "Repo $uname ($rid) has been $stat");\r
+ } else {\r
+ gwvpmini_SendMessage("info", "Problem disabling repo with rid $rid");\r
+ }\r
+ \r
+ header("Location: $BASE_URL/admin");
+}
+
+function gwvpmini_SwitchGravatars()
+{
+ global $BASE_URL, $use_gravatar;\r
+ \r
+ if($newst == 1) $stat = "disabled";\r
+ else $stat = "enabled";\r
+
+ if($use_gravatar) {
+ gwvpmini_setConfigVal("gravatarenabled", "0");
+ } else {
+ gwvpmini_setConfigVal("gravatarenabled", "1");
+ }
+ \r
+ gwvpmini_SendMessage("info", "Gravatars $stat");\r
+ \r
+ header("Location: $BASE_URL/admin");
+}
+
+function gwvpmini_SwitchForceSSL()
+{
+ global $BASE_URL, $force_ssl;\r
+ \r
+ if($newst == 1) $stat = "disabled";\r
+ else $stat = "enabled";\r
+ \r
+ if($force_ssl) {\r
+ gwvpmini_setConfigVal("forcessl", "0");\r
+ } else {\r
+ gwvpmini_setConfigVal("forcessl", "1");\r
+ }\r
+ \r
+ gwvpmini_SendMessage("info", "forcessl $stat");\r
+ \r
+ header("Location: $BASE_URL/admin");\r
+
+}
?>
\ No newline at end of file