X-Git-Url: http://git.pjr.cc/?p=gwvp.git;a=blobdiff_plain;f=gwvplib%2Fgwvprepoadmin.php;h=cb533bfaeb67457fefae8068786fb6fe483fa307;hp=e0943ba89c6761d387165313f8f1ace1979cbdb7;hb=4f4bf1da18181d412cd755143e016ede587cc1d6;hpb=774923bffbfc4efdc92cfece19ec7dc48a6b7f5b
diff --git a/gwvplib/gwvprepoadmin.php b/gwvplib/gwvprepoadmin.php
index e0943ba..cb533bf 100644
--- a/gwvplib/gwvprepoadmin.php
+++ b/gwvplib/gwvprepoadmin.php
@@ -6,16 +6,31 @@ $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":
return "gwvp_CreateRepoPage";
break;
+ 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";
}
@@ -30,11 +45,181 @@ function gwvp_RepoAdminCallMe()
return false;
}
+function gwvp_ManageRepoPage()
+{
+ gwvp_goMainPage("gwvp_ManageRepoPageBody");
+}
+
function gwvp_RepoAdminPage()
{
gwvp_goMainPage("gwvp_RepoAdminPageBody");
}
+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"];
+
+ $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");
+
+
+}
+
+function gwvp_CreateRepoPageBody()
+{
+ 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 "
Create a Repo
";
+ echo "";
+}
function gwvp_RepoAdminPageBody()
{
@@ -44,19 +229,301 @@ function gwvp_RepoAdminPageBody()
echo "Repo Management
";
echo "Create a Repo
";
+ if(isset($_SESSION["isloggedin"])) {
+ echo "Your Repo's
";
+ $ownreps = gwvp_getOwnedRepos($_SESSION["id"]);
+ if($ownreps != false) {
+ echo "";
+ echo "Repo Name | Repo description |
";
+ foreach($ownreps as $repos) {
+ $mjay = print_r($repos, true);
+ error_log("snafu: $mjay");
+ $reponame = $repos["name"];
+ $repodesc = $repos["description"];
+ $rid = $repos["id"];
+ echo "$reponame | $repodesc | Manage |
";
+ }
+ echo "
";
+ } else {
+ echo "You own no repositories";
+ }
+ 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 "Repo Name | Repo Description | Repo Owner |
";
foreach($rlist as $u_res) {
+ $rid = $u_res["id"];
$rname = $u_res["name"];
$rdesc = $u_res["description"];
- $rown = $u_res["owner"];
- echo "$rname | $rdesc | $rown |
";
+ $rown = gwvp_getUserName($u_res["owner"]);
+ $manordetslink = "details";
+ $manordets = "Details";
+ if(isset($_SESSION["id"])) {
+ if(gwvp_resolvRepoPerms($_SESSION["id"], $rid)>3) {
+ $manordetslink = "manage";
+ $manordets = "Manage";
+ }
+ }
+ echo "$rname | $rdesc | $rown | $manordets |
";
}
echo "
";
return;
}
+function gwvp_DisemableRefId($who)
+{
+ if($who == "anon") return "Everyone";
+ if($who == "authed") return "All Authenticated User";
+
+ $epl = explode(":", $who);
+
+ if($epl[0] == "user") {
+ $username = gwvp_getUserName($epl[1]);
+ return "User: $username";
+ } else if ($epl[0] == "group") {
+ $grdent = gwvp_getGroup($epl[1]);
+ $groupname = $grdent["name"];
+ return "Group: $groupname";
+ } else return "unknown";
+}
+
+function gwvp_ManageRepoPageBody()
+{
+ global $LOGIN_TYPE, $BASE_URL;
+
+ $rid = -1;
+ if(isset($_REQUEST["q"])) {
+ $query = $_REQUEST["q"];
+ $qspl = explode("/", $query);
+ $rid = $qspl[3];
+ }
+
+ $repodets = gwvp_GetRepo($rid);
+ $reponame = $repodets["name"];
+ $repodesc = $repodets["description"];
+ $repoownid = $repodets["owner"];
+ $owndby = gwvp_getUserName($repoownid);
+ $users = gwvp_getUsers();
+ $groups = gwvp_getGroups();
+ $repoperms = gwvp_getRepoPermissions($rid);
+
+
+ echo "Repository Management
";
+ echo "$owndby's Repository $reponame
";
+
+ echo "";
+
+
+ echo "Repository Permissions
";
+ echo "";
+}
+
+
?>
\ No newline at end of file