X-Git-Url: http://git.pjr.cc/?p=gwvp.git;a=blobdiff_plain;f=gwvplib%2Fgwvprepoadmin.php;h=cb533bfaeb67457fefae8068786fb6fe483fa307;hp=9ead6d3bd2fd88218d0acffe0060d6ebe3337d46;hb=4f4bf1da18181d412cd755143e016ede587cc1d6;hpb=74399e0d5226d43656c618451b4e6fc06702e5ab diff --git a/gwvplib/gwvprepoadmin.php b/gwvplib/gwvprepoadmin.php index 9ead6d3..cb533bf 100644 --- a/gwvplib/gwvprepoadmin.php +++ b/gwvplib/gwvprepoadmin.php @@ -22,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"; } @@ -36,6 +45,11 @@ function gwvp_RepoAdminCallMe() return false; } +function gwvp_ManageRepoPage() +{ + gwvp_goMainPage("gwvp_ManageRepoPageBody"); +} + function gwvp_RepoAdminPage() { gwvp_goMainPage("gwvp_RepoAdminPageBody"); @@ -46,6 +60,83 @@ 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; @@ -53,15 +144,35 @@ function gwvp_DoCreateRepoPage() $reponame = $_REQUEST["reponame"]; $repodesc = $_REQUEST["repodesc"]; + $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"]); - gwvp_createGitRepo($reponame, $_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)) { + } else if(gwvp_createGitRepo($reponame, $_SESSION["id"], $repodesc, null, $defperms)) { gwvp_SendMessage("info", "Repo, $reponame, created"); } header("Location: $BASE_URL/admin/repos"); @@ -71,7 +182,9 @@ function gwvp_DoCreateRepoPage() function gwvp_CreateRepoPageBody() { - global $BASE_URL, $repo_base; + global $BASE_URL; + + $repo_base = gwvp_getConfigVal("repodir"); $reponameobv = ""; $repodescobv = ""; @@ -84,14 +197,15 @@ function gwvp_CreateRepoPageBody() echo "
Repository Name | |||||||||||||||||||||||||||||||||
Repository Description | |||||||||||||||||||||||||||||||||
Repository Bundle | Create a bundle for pro-creating the git repository (export your git bundle with \"git bundle create /tmp/filename --branches\") | ||||||||||||||||||||||||||||||||
Repository Bundle | Create a bundle for pro-creating the git repository (export your git bundle with \"git bundle create /tmp/filename --branches\") "; + echo "Typically you wouldn't use this as its easier to \"push\" to the repo after its created by adding it as a remote and pushing your local master branch | ||||||||||||||||||||||||||||||||
Default Permisison Set | ";
echo "
Repo Management"; echo "Create a Repo"; + if(isset($_SESSION["isloggedin"])) { + echo " Your Repo's"; + $ownreps = gwvp_getOwnedRepos($_SESSION["id"]); + if($ownreps != false) { + echo "
"; + } + // next we need a repo list - with perms checking - ug // i must also remember that the home page will also contain a list of repos and that this page is solely for maintance // and creation of repos - so i dont need to get over-worked about the info stored on this page outside of those activities + echo " All Repositories"; $rlist = gwvp_GetRepoList(); - echo "
Repository Management"; + echo "$owndby's Repository $reponame"; + + echo ""; + + + echo " Repository Permissions"; + echo ""; +} ?> \ No newline at end of file |