X-Git-Url: http://git.pjr.cc/?a=blobdiff_plain;f=gwvplib%2Fgwvprepoadmin.php;h=cb533bfaeb67457fefae8068786fb6fe483fa307;hb=6199ff804b1a84555edfd5320f2301c489c06b03;hp=df122d6816dbbb292a42c2f0ae0f2f275a909ea2;hpb=d5dbb5b8065eb6290c0a2b573e343f6ad3f8fb26;p=gwvp.git diff --git a/gwvplib/gwvprepoadmin.php b/gwvplib/gwvprepoadmin.php index df122d6..cb533bf 100644 --- a/gwvplib/gwvprepoadmin.php +++ b/gwvplib/gwvprepoadmin.php @@ -6,11 +6,14 @@ $MENU_ITEMS["20repos"]["link"] = "$BASE_URL/admin/repos"; function gwvp_RepoAdminCallMe() { + + error_log("in repoadmin callme"); if(isset($_REQUEST["q"])) { $query = $_REQUEST["q"]; $qspl = explode("/", $query); if(isset($qspl[0]) && isset($qspl[1])) { if($qspl[0] == "admin" && $qspl[1] == "repos") { + error_log("i got here, where next?"); if(isset($qspl[2])) { switch($qspl[2]) { case "create": @@ -19,6 +22,15 @@ function gwvp_RepoAdminCallMe() case "docreate": return "gwvp_DoCreateRepoPage"; break; + case "manage": + return "gwvp_ManageRepoPage"; + break; + case "updateperms": + return "gwvp_UpdateRepoPerms"; + break; + case "details": + return "gwvp_RepoDetailsPage"; + break; default: return "gwvp_RepoAdminPage"; } @@ -33,6 +45,11 @@ function gwvp_RepoAdminCallMe() return false; } +function gwvp_ManageRepoPage() +{ + gwvp_goMainPage("gwvp_ManageRepoPageBody"); +} + function gwvp_RepoAdminPage() { gwvp_goMainPage("gwvp_RepoAdminPageBody"); @@ -43,52 +60,163 @@ function gwvp_CreateRepoPage() gwvp_goMainPage("gwvp_CreateRepoPageBody"); } +function gwvp_RepoDetailsPage() +{ + gwvp_goMainPage("gwvp_RepoDetailsPageBody"); +} + +function gwvp_RepoDetailsPageBody() +{ + echo "I am a repo details page"; +} + +function gwvp_UpdateRepoPerms() +{ + global $LOGIN_TYPE, $BASE_URL; + + $rid = -1; + if(isset($_REQUEST["q"])) { + $query = $_REQUEST["q"]; + $qspl = explode("/", $query); + $rid = $qspl[3]; + } + + // a visible addition + if(isset($_REQUEST["visadd"])) { + foreach($_REQUEST["vismembersout"] as $mems) { + //gwvp_addRepoPermission($repoid, $permtype, $permref); + gwvp_addRepoPermission($rid, "visible", $mems); + } + } + + // a visible removal + if(isset($_REQUEST["visremove"])) { + foreach($_REQUEST["vismembersin"] as $rems) { + error_log("Remove permid, $rems"); + gwvp_removeRepoPermission($rems); + } + } + + // a read addition + if(isset($_REQUEST["readadd"])) { + foreach($_REQUEST["readmembersout"] as $mems) { + //gwvp_addRepoPermission($repoid, $permtype, $permref); + gwvp_addRepoPermission($rid, "read", $mems); + } + } + + // a read removal + if(isset($_REQUEST["readremove"])) { + foreach($_REQUEST["readmembersin"] as $rems) { + error_log("Remove permid, $rems"); + gwvp_removeRepoPermission($rems); + } + } + + // a write addition + if(isset($_REQUEST["writeadd"])) { + foreach($_REQUEST["writemembersout"] as $mems) { + //gwvp_addRepoPermission($repoid, $permtype, $permref); + gwvp_addRepoPermission($rid, "write", $mems); + } + } + + // a write removal + if(isset($_REQUEST["writeremove"])) { + foreach($_REQUEST["writemembersin"] as $rems) { + error_log("Remove permid, $rems"); + gwvp_removeRepoPermission($rems); + } + } + + gwvp_SendMessage("info", "Permissions Updated"); + header("Location: $BASE_URL/admin/repos/manage/$rid"); + return; +} + +//function gwvp_createGitRepo($name, $ownerid, $desc, $defaultperms=0, $bundle=null) + + function gwvp_DoCreateRepoPage() { global $BASE_URL; $reponame = $_REQUEST["reponame"]; + $repodesc = $_REQUEST["repodesc"]; - if(gwvp_createGitRepo($reponame)) { + $defperms = 0; + + if(isset($_REQUEST["defperms"])) { + switch($_REQUEST["defperms"]) { + case "permsall": + $defperms = 0; + break; + case "permsmeonly": + $defperms = 1; + break; + case "permsinvisible": + $defperms = 2; + break; + default: + $defperms = 2; + } + } + + // TODO: this code is bollocks, need to redo + if(gwvp_repoExists($reponame)) { + gwvp_SendMessage("error", "a repository with the name \"$reponame\" already exists"); + //header("Location: $BASE_URL/admin/repos/create?reponameobv=$reponame&repodescobv=$repodesc"); + } else if($_FILES["bundlefile"]["size"] > 0) { // if(isset($_FILES["bundlefile"]["size"])) <--- this needs to happen here TODO + error_log("bundle file tmpname is ".$_FILES["bundlefile"]["tmp_name"]); + // function gwvp_createGitRepo($name, $ownerid, $desc, $defaultperms=0, $bundle=null) + // TODO: deal with default perms + gwvp_createGitRepo($reponame, $_SESSION["id"], $repodesc, $_FILES["bundlefile"]["tmp_name"], $defperms); + gwvp_SendMessage("info", "Repo, $reponame, created"); + } else if(gwvp_createGitRepo($reponame, $_SESSION["id"], $repodesc, null, $defperms)) { gwvp_SendMessage("info", "Repo, $reponame, created"); - header("Location: $BASE_URL/admin/repos"); } + header("Location: $BASE_URL/admin/repos"); } function gwvp_CreateRepoPageBody() { - global $BASE_URL, $repo_base; + global $BASE_URL; + + $repo_base = gwvp_getConfigVal("repodir"); + + $reponameobv = ""; + $repodescobv = ""; + + if(isset($_REQUEST["reponameobv"])) $reponameobv = $_REQUEST["reponameobv"]; + if(isset($_REQUEST["repodescobv"])) $repodescobv = $_REQUEST["repodescobv"]; echo "