X-Git-Url: http://git.pjr.cc/?p=gwvp-mini.git;a=blobdiff_plain;f=gwvpmini%2Fgwvpmini_gitrepo.php;fp=gwvpmini%2Fgwvpmini_gitrepo.php;h=ba00862d35d8c78fb66703522482ed2264acfb40;hp=d642c929f76f2f8e481ac4975156117c395c00cc;hb=90c1b8ddcf48b3f13f143954a81f231591955915;hpb=31500e3cbb5b60f5ee9a5d991f6b3f72290ee000 diff --git a/gwvpmini/gwvpmini_gitrepo.php b/gwvpmini/gwvpmini_gitrepo.php index d642c92..ba00862 100644 --- a/gwvpmini/gwvpmini_gitrepo.php +++ b/gwvpmini/gwvpmini_gitrepo.php @@ -232,11 +232,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)"); header("Location: $BASE_URL/repos"); return; } + + // resolve repo permissions on the read/clone + if(gwvpmini_GetRepoPerm($rn, $uid) < 1) { + gwvpmini_SendMessage("error", "local repo $clonefrom given as upstream clone, however $clonefrom doesnt exist on this site (or you cant read it)"); + 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,7 +267,7 @@ 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_createGitRepo($_REQUEST["reponame"], $_SESSION["id"], $_REQUEST["repodesc"], $defperms, $clonefrom, $fromremote); gwvpmini_SendMessage("info", "Repo ".$_REQUEST["reponame"]." has been created"); header("Location: $BASE_URL/repos"); }