X-Git-Url: http://git.pjr.cc/?a=blobdiff_plain;f=gwvpmini%2Fgwvpmini_gitrepo.php;h=e20532eae9dbefa0e10607629d2bc8b61fbf9852;hb=f4aa66bfa1ab7c6de7ee8e043384e50b6948ca00;hp=d642c929f76f2f8e481ac4975156117c395c00cc;hpb=64781bdbf8cbe789d349418253ce34efa43ad884;p=gwvp-mini.git
diff --git a/gwvpmini/gwvpmini_gitrepo.php b/gwvpmini/gwvpmini_gitrepo.php
index d642c92..e20532e 100644
--- a/gwvpmini/gwvpmini_gitrepo.php
+++ b/gwvpmini/gwvpmini_gitrepo.php
@@ -55,6 +55,7 @@ function gwvpmini_RepoMainPageBody()
if(gwvpmini_isLoggedIn()) {
$repos = gwvpmini_GetOwnedRepos($_SESSION["username"]);
+ error_log("repos, ".print_r($repos, true));
if(!$repos) {
echo "You currently own no repos
";
} else {
@@ -63,26 +64,37 @@ function gwvpmini_RepoMainPageBody()
foreach($repos as $repo) {
$name = $repo["name"];
$desc = $repo["desc"];
+ $stat = $repo["status"];
+ $llog = "";
+ if($stat != 0) {
+ switch($stat) {
+ case 1:
+ $llog = "Repo Administratively Disabled";
+ break;
+ case 2:
+ $llog = "Repo Cloning from remote";
+ break;
+ }
+ } else {
- if($desc == "") $desc = "none";
-
- $repo_base = gwvpmini_getConfigVal("repodir");
- $cmd = "git --git-dir=\"$repo_base/$name.git\" log --all -1 2> /dev/null";
- echo "
$name | $desc | ";
- echo "";
- // error_log("CMD: $cmd");
- //system("$cmd");
- $fls = popen($cmd, "r");
- $tks = "";
- if($fls !== false) while(!feof($fls)) {
- $tks .= fread($fls,1024);
+ if($desc == "") $desc = "none";
+
+ $repo_base = gwvpmini_getConfigVal("repodir");
+ $cmd = "git --git-dir=\"$repo_base/$name.git\" log --all -1 2> /dev/null";
+ // error_log("CMD: $cmd");
+ //system("$cmd");
+ $fls = popen($cmd, "r");
+ $tks = "";
+ if($fls !== false) while(!feof($fls)) {
+ $tks .= fread($fls,1024);
+ }
+
+ if($tks == "") {
+ $llog = "No Log Info Yet";
+ } else $llog = $tks;
+
}
-
- if($tks == "") {
- echo "No Log Info Yet";
- } else echo $tks;
- echo " | ";
- echo "
";
+ echo "$name | $desc | $llog |
";
}
echo "";
}
@@ -97,20 +109,32 @@ function gwvpmini_RepoMainPageBody()
foreach($contreps as $repo) {
$name = $repo["name"];
$desc = $repo["desc"];
- $repo_base = gwvpmini_getConfigVal("repodir");
- $cmd = "git --git-dir=\"$repo_base/$name.git\" log --all -1 2> /dev/null";
- // error_log("CMD: $cmd");
- //system("$cmd");
- $fls = popen($cmd, "r");
- $tks = "";
- if($fls !== false) while(!feof($fls)) {
- $tks .= fread($fls,1024);
+ $stat = $repo["status"];
+ if($stat != 0) {
+ switch($stat) {
+ case 1:
+ $lastlog = "Repo Administratively Disabled";
+ break;
+ case 2:
+ $lastlog = "Repo Cloning from remote";
+ break;
+ }
+ } else {
+ $repo_base = gwvpmini_getConfigVal("repodir");
+ $cmd = "git --git-dir=\"$repo_base/$name.git\" log --all -1 2> /dev/null";
+ // error_log("CMD: $cmd");
+ //system("$cmd");
+ $fls = popen($cmd, "r");
+ $tks = "";
+ if($fls !== false) while(!feof($fls)) {
+ $tks .= fread($fls,1024);
+ }
+
+ if($tks == "") {
+ $lastlog = "No Log Info Yet";
+ } else $lastlog = $tks;
}
- if($tks == "") {
- $lastlog = "No Log Info Yet";
- } else $lastlog = $tks;
-
$owner = gwvpmini_getUser(null, null, $repo["owner"]);
$repname = "$name";
$repown = gwvpmini_HtmlGravatar($owner["email"], 30, "
")."".$owner["username"]."";
@@ -232,11 +256,30 @@ function gwvpmini_RepoCreate()
if($clonefrom !== false && $fromremote == false) {
// check the local repo exists
$rn = gwvpmini_getRepo(null, $clonefrom, null);
+ $uid = $_SESSION["id"];
+
if($rn == false) {
- gwvpmini_SendMessage("error", "local repo $clonefrom given as upstream clone, however $clonefrom doesnt exist on this site");
+ gwvpmini_SendMessage("error", "local repo $clonefrom given as upstream clone, however $clonefrom doesnt exist on this site (or you cant read it unbake)");
header("Location: $BASE_URL/repos");
return;
}
+
+ // resolve repo permissions on the read/clone
+ if(gwvpmini_GetRepoPerm($rn["id"], $uid) < 1) {
+ gwvpmini_SendMessage("error", "local repo $clonefrom given as upstream clone, however $clonefrom doesnt exist on this site (or you cant read it bake)");
+ header("Location: $BASE_URL/repos");
+ return;
+ }
+ }
+
+ $defperms = "a";
+ switch($_REQUEST["perms"]) {
+ case "perms-registered":
+ $defperms = "r";
+ break;
+ case "perms-onlywrite":
+ $defperms = "x";
+ break;
}
if(!$inputcheck) {
@@ -248,8 +291,9 @@ function gwvpmini_RepoCreate()
gwvpmini_SendMessage("error", "Repo ".$_REQUEST["reponame"]." already exists");
header("Location: $BASE_URL/repos");
} else {
- gwvpmini_createGitRepo($_REQUEST["reponame"], $_SESSION["id"], $_REQUEST["repodesc"], $_REQUEST["perms"], $clonefrom);
- gwvpmini_SendMessage("info", "Repo ".$_REQUEST["reponame"]." has been created");
+ if(gwvpmini_createGitRepo($_REQUEST["reponame"], $_SESSION["id"], $_REQUEST["repodesc"], $defperms, $clonefrom, $fromremote)) {
+ gwvpmini_SendMessage("info", "Repo ".$_REQUEST["reponame"]." has been created");
+ }
header("Location: $BASE_URL/repos");
}
} else {