{
global $repo_view_call;
- 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($qspl[0] == "updaterepobaseperms") {
return "gwvpmini_UpdateRepoBasePerms";
}
+ if($qspl[0] == "repoaddreader") {
+ return "gwvpmini_AddRepoReader";
+ }
+ if($qspl[0] == "repoaddcontrib") {
+ return "gwvpmini_AddRepoContributor";
+ }
+ if($qspl[0] == "reporemovereaders") {
+ return "gwvpmini_RemoveRepoReader";
+ }
+ if($qspl[0] == "reporemovecontribs") {
+ return "gwvpmini_RemoveRepoContributor";
+ }
+ if($qspl[0] == "repoupdatedesc") {
+ return "gwvpmini_RepoUpdateDescription";
+ }
return false;\r
}\r
else return false;\r
$repo_base = gwvpmini_getConfigVal("repodir");\r
+ $bperms_f = gwvpmini_GetRepoPerms(gwvpmini_GetRepoId($repo_view_call));
+ $bperms = $bperms_f["b"];
+
$owner_view = false;\r
if($_SERVER["SERVER_PORT"] == 443) $proto="https://";
$owner = gwvpmini_GetRepoOwnerDetailsFromName($repo_view_call);
$desc = gwvpmini_GetRepoDescFromName($repo_view_call);
+ $editdesc = preg_replace("/\<br\>/", "\n", $desc);
- $owner_name = $owner["username"];
+ $rid = gwvpmini_GetRepoId($repo_view_call);
+ $owner_name = $owner["username"];
+ // TODO: fix this so that if user has no read access to repo, they cant see it
if(isset($_SESSION["id"])) {
if($owner["id"] == $_SESSION["id"]) {
$owner_view = true;
+ } else if ($bperms != "r") {
+ // check user level perms
+ $perm = gwvpmini_GetRepoPerm($rid, $_SESSION["id"]);
+ if($perm < 1) {
+ header("Location: $BASE_URL");\r
+ return;
+ }
+ }
+ } else {
+ if($bperms != "a") {
+ header("Location: $BASE_URL");
+ return;
}
}
- error_log("STUFF:".print_r($owner,true));
- $cloneurl = "git clone $proto$sname$BASE_URL/git/$repo_view_call.git";
+ // error_log("STUFF:".print_r($owner,true));
+ if($bperms != "a") $login = $_SESSION["username"].":password@";
+ else $login = "";
+ $cloneurl = "git clone $proto$login$sname$BASE_URL/git/$repo_view_call.git";
echo "<textarea rows=1 cols=".strlen($cloneurl).">$cloneurl</textarea><br>";
if($owner_view) $owner_extra = " (YOU)";
else $owner_extra = "";\r
- echo "<h2>".get_gravatar($owner["email"], 30, 'mm', 'g', true)."$repo_view_call - $owner_name$owner_extra</h2>";
- echo "<b>$desc</b><br>";
+ echo "<h2>".gwvpmini_HtmlGravatar($owner["email"], 30)."$repo_view_call - $owner_name$owner_extra</h2>";
+ if(!$owner_view) echo "$desc<br>";
if($owner_view) {
- $bperms = gwvpmini_GetRepoPerm(gwvpmini_GetRepoId($repo_view_call), "b");
+ echo "<form method=\"post\" action=\"$BASE_URL/repoupdatedesc/$repo_view_call\">";\r
+ echo "<h3>Description<h3><textarea name=\"desc\" cols=\"120\" rows=\"5\">$editdesc</textarea><br><input type=\"submit\" name=\"Update\" value=\"Update\">";\r
+ echo "</form><br>";\r
+
+
+
$anyo = "";
$regd = "";
if($bperms == "r") $regd = " selected";\r
if($bperms == "x") $expl = " selected";\r
- error_log("BPERMS: $bperms");
+ // error_log("BPERMS: $bperms");
if($bperms == "x") $cspan = 3;
else $cspan = 2;
echo "<input type=\"submit\" name=\"Set\" value=\"Set\">";
echo "</form>";
if($bperms == "x") {
- echo "</td><td>Readers<br>";
+ echo "</td><td><b>Readers</b><br>";
+ echo "<form method=\"post\" action=\"$BASE_URL/reporemovereaders/$repo_view_call\">";
+ $nl = 0;
+ foreach($bperms_f as $key=>$val) {
+ if($val == 1) {
+ $dets = gwvpmini_getUser(null, null, $key);
+ echo gwvpmini_HtmlGravatar($dets["email"], 18, " ")."<input type=\"checkbox\" name=\"$key\"> ".$dets["username"]."<br>";
+ $nl = 1;
+ }
+ }
+ if($nl==1) echo "<input type=\"submit\" name=\"remove\" value=\"Remove Selected\">";
+ echo "</form>";
echo "<form method=\"post\" action=\"$BASE_URL/repoaddreader/$repo_view_call\">";
echo "<input type=\"text\" name=\"readerusername\"> <input type=\"submit\" name=\"Add\" value=\"Add\">";
echo "</form><br>";
}
- echo "</td><td>Contributors";
+ echo "</td><td><b>Contributors</b><br>";
+ echo "<form method=\"post\" action=\"$BASE_URL/reporemovecontribs/$repo_view_call\">";
+ $nl = 0;
+ foreach($bperms_f as $key=>$val) {\r
+ if($val == 2) {\r
+ $dets = gwvpmini_getUser(null, null, $key);\r
+ echo gwvpmini_HtmlGravatar($dets["email"], 18, " ")."<input type=\"checkbox\" name=\"$key\"> ".$dets["username"]."<br>";
+ $nl = 1;\r
+ }\r
+ }\r
+ if($nl==1) echo "<input type=\"submit\" name=\"remove\" value=\"Remove Selected\">";\r
+ echo "</form>";
+
echo "<form method=\"post\" action=\"$BASE_URL/repoaddcontrib/$repo_view_call\">";
echo "<input type=\"text\" name=\"contribusername\"> <input type=\"submit\" name=\"Add\" value=\"Add\">";
echo "</form><br>";
echo "</td></tr></table>";
+
}
//echo "command: git log --git-dir=$repo_base/$repo_view_call.git --pretty=format:\"%H\" -10";
$rs = popen("git --git-dir=$repo_base/$repo_view_call.git log --pretty=format:\"%H\" -10", "r");
$flon = "$flin3 (external)";
}
}
- echo "<tr><td>".get_gravatar($flin2, 18, 'mm', 'g', true)."$flon</td><td>$flin1</td><td>$flin4</td></tr>";
+ $timedifftxt = gwvpmini_TimeDiffText($flin1);
+ echo "<tr><td>".gwvpmini_HtmlGravatar($flin2, 18)."$flon</td><td>$timedifftxt</td><td>$flin4</td></tr>";
}
echo "</table>";
} else {
if(isset($_REQUEST["q"])) {\r
$query = $_REQUEST["q"];\r
$qspl = explode("/", $query);
- error_log("PLOOP:qview".print_r($qspl, true));\r
+ // error_log("PLOOP:qview".print_r($qspl, true));\r
}
if(isset($qspl[1])) $repo_view_call = $qspl[1];
else {
- error_log("PLOOP: no repo name");
+ // error_log("PLOOP: no repo name");
header("Location: $BASE_URL/view/$repo_view_call");
return;
}
if(!$owner_view) {
gwvpmini_SendMessage("error", "failure updating permission for repo");
- error_log("PLOOP: attempt to update from non-owner");
+ // error_log("PLOOP: attempt to update from non-owner");
} else {
- error_log("PLOOP: updateds: ".print_r($_REQUEST, true));
+ // error_log("PLOOP: updateds: ".print_r($_REQUEST, true));
gwvpmini_ChangeRepoPerm($rid, "b", $_REQUEST["base_perms"]);
gwvpmini_SendMessage("info", "Base permissions for repo updated");
}\r
header("Location: $BASE_URL/view/$repo_view_call");
+}
+
+function gwvpmini_AddRepoReader()
+{
+ global $BASE_URL, $repo_view_call;\r
+ \r
+ if(isset($_REQUEST["q"])) {\r
+ $query = $_REQUEST["q"];\r
+ $qspl = explode("/", $query);\r
+ // error_log("PLOOP:qview".print_r($qspl, true));\r
+ }\r
+ \r
+ if(isset($qspl[1])) $repo_view_call = $qspl[1];\r
+ else {\r
+ // error_log("PLOOP: no repo name");
+ // TODO: btw, this makes no sense\r
+ header("Location: $BASE_URL/view/$repo_view_call");\r
+ return;\r
+ }\r
+ \r
+ $newperms = $_REQUEST["base_perms"];\r
+ \r
+ $owner = gwvpmini_GetRepoOwnerDetailsFromName($repo_view_call);\r
+ $desc = gwvpmini_GetRepoDescFromName($repo_view_call);\r
+ \r
+ $owner_name = $owner["username"];\r
+ \r
+ $owner_view = false;\r
+ if(isset($_SESSION["id"])) {\r
+ if($owner["id"] == $_SESSION["id"]) {\r
+ $owner_view = true;\r
+ }\r
+ }
+ if(!$owner_view) {
+ gwvpmini_SendMessage("error", "failure updating permission for repo");\r
+ // error_log("PLOOP: attempt to update from non-owner");
+ header("Location: $BASE_URL/view/$repo_view_call");
+ return;
+ }\r
+
+ $auid = gwvpmini_GetUserId($_REQUEST["readerusername"]);
+
+ if($auid == $_SESSION["id"]) {
+ gwvpmini_SendMessage("error", "You cannot add yourself as a reader as you already own the repo");
+ header("Location: $BASE_URL/view/$repo_view_call");\r
+ return;
+ }
+
+ if($auid > 0) {\r
+ $rid = gwvpmini_GetRepoId($repo_view_call);
+
+ gwvpmini_ChangeRepoPerm($rid, $auid, 1);
+ gwvpmini_SendMessage("info", "Added user ".$_REQUEST["readerusername"]." as a reader");
+ header("Location: $BASE_URL/view/$repo_view_call");\r
+ return;
+ } else {
+ gwvpmini_SendMessage("error", "Couldnt find user with username of ".$_REQUEST["readerusername"]);
+ header("Location: $BASE_URL/view/$repo_view_call");
+ return;
+ }
+
+
+}
+
+function gwvpmini_AddRepoContributor()
+{
+ global $BASE_URL, $repo_view_call;\r
+ \r
+ if(isset($_REQUEST["q"])) {\r
+ $query = $_REQUEST["q"];\r
+ $qspl = explode("/", $query);\r
+ // error_log("PLOOP:qview".print_r($qspl, true));\r
+ }\r
+ \r
+ if(isset($qspl[1])) $repo_view_call = $qspl[1];\r
+ else {\r
+ // error_log("PLOOP: no repo name");\r
+ // TODO: btw, this makes no sense\r
+ header("Location: $BASE_URL/view/$repo_view_call");\r
+ return;\r
+ }\r
+ \r
+ $newperms = $_REQUEST["base_perms"];\r
+ \r
+ $owner = gwvpmini_GetRepoOwnerDetailsFromName($repo_view_call);\r
+ $desc = gwvpmini_GetRepoDescFromName($repo_view_call);\r
+ \r
+ $owner_name = $owner["username"];\r
+ \r
+ $owner_view = false;\r
+ if(isset($_SESSION["id"])) {\r
+ if($owner["id"] == $_SESSION["id"]) {\r
+ $owner_view = true;\r
+ }\r
+ }\r
+ if(!$owner_view) {\r
+ gwvpmini_SendMessage("error", "failure updating permission for repo");\r
+ // error_log("PLOOP: attempt to update from non-owner");\r
+ header("Location: $BASE_URL/view/$repo_view_call");\r
+ return;\r
+ }\r
+ \r
+ $auid = gwvpmini_GetUserId($_REQUEST["contribusername"]);\r
+ \r
+ if($auid == $_SESSION["id"]) {\r
+ gwvpmini_SendMessage("error", "You cannot add yourself as a contributor as you already own the repo");\r
+ header("Location: $BASE_URL/view/$repo_view_call");\r
+ return;\r
+ }\r
+ \r
+ if($auid > 0) {\r
+ $rid = gwvpmini_GetRepoId($repo_view_call);\r
+ \r
+ gwvpmini_ChangeRepoPerm($rid, $auid, 2);\r
+ gwvpmini_SendMessage("info", "Added user ".$_REQUEST["contribusername"]." as a contributor");\r
+ header("Location: $BASE_URL/view/$repo_view_call");\r
+ return;\r
+ } else {\r
+ gwvpmini_SendMessage("error", "Couldnt find user with username of ".$_REQUEST["contribusername"]);\r
+ header("Location: $BASE_URL/view/$repo_view_call");\r
+ return;\r
+ }
+}
+
+function gwvpmini_RemoveRepoContributor()
+{
+
+ global $BASE_URL, $repo_view_call;\r
+ \r
+ if(isset($_REQUEST["q"])) {\r
+ $query = $_REQUEST["q"];\r
+ $qspl = explode("/", $query);\r
+ // error_log("PLOOP:qview".print_r($qspl, true));\r
+ }\r
+ \r
+ if(isset($qspl[1])) $repo_view_call = $qspl[1];\r
+ else {\r
+ // error_log("PLOOP: no repo name");\r
+ // TODO: btw, this makes no sense\r
+ header("Location: $BASE_URL/view/$repo_view_call");\r
+ return;\r
+ }\r
+ \r
+ \r
+ $owner = gwvpmini_GetRepoOwnerDetailsFromName($repo_view_call);\r
+ $desc = gwvpmini_GetRepoDescFromName($repo_view_call);\r
+ \r
+ $owner_name = $owner["username"];\r
+ \r
+ $owner_view = false;\r
+ if(isset($_SESSION["id"])) {\r
+ if($owner["id"] == $_SESSION["id"]) {\r
+ $owner_view = true;\r
+ }\r
+ }\r
+ if(!$owner_view) {\r
+ gwvpmini_SendMessage("error", "failure updating permission for repo");\r
+ // error_log("PLOOP: attempt to update from non-owner");\r
+ header("Location: $BASE_URL/view/$repo_view_call");\r
+ return;\r
+ }
+
+ $rid = gwvpmini_GetRepoId($repo_view_call);
+
+ $bperms_f = gwvpmini_GetRepoPerms($rid);
+
+ foreach($bperms_f as $key=>$val) {
+ if($val == 2) {
+ if(isset($_REQUEST["$key"])) {
+ gwvpmini_ChangeRepoPerm($rid, $key, 0);
+ }
+ }
+ }
+
+ gwvpmini_SendMessage("info", "Repo permissions updated");
+ header("Location: $BASE_URL/view/$repo_view_call");\r
+ return;\r
+
+}\r
+
+\r
+function gwvpmini_RemoveRepoReader()\r
+{\r
+\r
+ global $BASE_URL, $repo_view_call;\r
+\r
+ if(isset($_REQUEST["q"])) {\r
+ $query = $_REQUEST["q"];\r
+ $qspl = explode("/", $query);\r
+ // error_log("PLOOP:qview".print_r($qspl, true));\r
+ }\r
+\r
+ if(isset($qspl[1])) $repo_view_call = $qspl[1];\r
+ else {\r
+ // error_log("PLOOP: no repo name");\r
+ // TODO: btw, this makes no sense\r
+ header("Location: $BASE_URL/view/$repo_view_call");\r
+ return;\r
+ }\r
+\r
+\r
+ $owner = gwvpmini_GetRepoOwnerDetailsFromName($repo_view_call);\r
+ $desc = gwvpmini_GetRepoDescFromName($repo_view_call);\r
+\r
+ $owner_name = $owner["username"];\r
+\r
+ $owner_view = false;\r
+ if(isset($_SESSION["id"])) {\r
+ if($owner["id"] == $_SESSION["id"]) {\r
+ $owner_view = true;\r
+ }\r
+ }\r
+ if(!$owner_view) {\r
+ gwvpmini_SendMessage("error", "failure updating permission for repo");\r
+ // error_log("PLOOP: attempt to update from non-owner");\r
+ header("Location: $BASE_URL/view/$repo_view_call");\r
+ return;\r
+ }\r
+\r
+ $rid = gwvpmini_GetRepoId($repo_view_call);\r
+\r
+ $bperms_f = gwvpmini_GetRepoPerms($rid);\r
+\r
+ foreach($bperms_f as $key=>$val) {\r
+ if($val == 1) {\r
+ if(isset($_REQUEST["$key"])) {\r
+ gwvpmini_ChangeRepoPerm($rid, $key, 0);\r
+ }\r
+ }\r
+ }\r
+\r
+ gwvpmini_SendMessage("info", "Repo permissions updated");\r
+ header("Location: $BASE_URL/view/$repo_view_call");\r
+ return;\r
+\r
+}
+
+function gwvpmini_RepoUpdateDescription()
+{
+ global $BASE_URL, $repo_view_call;\r
+ \r
+ if(isset($_REQUEST["q"])) {\r
+ $query = $_REQUEST["q"];\r
+ $qspl = explode("/", $query);\r
+ // error_log("PLOOP:qview".print_r($qspl, true));\r
+ }\r
+ \r
+ if(isset($qspl[1])) $repo_view_call = $qspl[1];\r
+ else {\r
+ // error_log("PLOOP: no repo name");\r
+ // TODO: btw, this makes no sense\r
+ header("Location: $BASE_URL/view/$repo_view_call");\r
+ return;\r
+ }\r
+ \r
+ \r
+ $owner = gwvpmini_GetRepoOwnerDetailsFromName($repo_view_call);\r
+ $desc = gwvpmini_GetRepoDescFromName($repo_view_call);\r
+ \r
+ $owner_name = $owner["username"];\r
+ \r
+ $owner_view = false;\r
+ if(isset($_SESSION["id"])) {\r
+ if($owner["id"] == $_SESSION["id"]) {\r
+ $owner_view = true;\r
+ }\r
+ }\r
+ if(!$owner_view) {\r
+ gwvpmini_SendMessage("error", "failure updating description for repo");\r
+ // error_log("PLOOP: attempt to update from non-owner");\r
+ header("Location: $BASE_URL/view/$repo_view_call");\r
+ return;\r
+ }\r
+ \r
+ $rid = gwvpmini_GetRepoId($repo_view_call);\r
+ \r
+ gwvpmini_UpdateRepoDescription($rid, $_REQUEST["desc"]);
+ \r
+ gwvpmini_SendMessage("info", "Repo description updated");\r
+ header("Location: $BASE_URL/view/$repo_view_call");\r
+ return;
}\r
?>
\ No newline at end of file