X-Git-Url: http://git.pjr.cc/?p=gwvp.git;a=blobdiff_plain;f=gwvplib%2Fgwvprepoadmin.php;h=cb533bfaeb67457fefae8068786fb6fe483fa307;hp=665aeffa7d121314483a3ead703f49a9bc0eacd6;hb=4f4bf1da18181d412cd755143e016ede587cc1d6;hpb=1a1ed3388655bbc4001022fd91f3f5ea3ad4d03a
diff --git a/gwvplib/gwvprepoadmin.php b/gwvplib/gwvprepoadmin.php
index 665aeff..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 "
";
echo "
Repository Name
";
echo "
Repository Description
";
- echo "
Repository Bundle
Create a bundle for pro-creating the git repository (export your git bundle with \"git bundle create /tmp/filename --branches\")
";
+ echo "
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
";
echo "
Default Permisison Set
";
echo "
";
- echo "
Anyone Can Read, Only you can write
";
- echo "
Anyone can see the repository exists, but only you can read or write to it
";
- echo "
Repository only visible to you
";
+ echo "
Anyone Can Read, Only you can write
";
+ echo "
Anyone can see the repository exists, but only you can read or write to it
";
+ echo "
Repository only visible to you
";
echo "
";
@@ -119,13 +233,15 @@ function gwvp_RepoAdminPageBody()
echo "
";
} else {
@@ -138,26 +254,276 @@ function gwvp_RepoAdminPageBody()
// 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 "