X-Git-Url: http://git.pjr.cc/?p=gwvp.git;a=blobdiff_plain;f=gwvplib%2Fgwvprepoadmin.php;h=cc78ba4d066139b8ce118cc873dc2fcad852b0d3;hp=7a2b476091f46159ab4f85782bc988c7c33bc5d8;hb=507bc8f2818a42d751ed6e2e2fc68ee2bde94016;hpb=425b2ddb1c73ca601b616ff9c6ef71d2c6b58b03
diff --git a/gwvplib/gwvprepoadmin.php b/gwvplib/gwvprepoadmin.php
index 7a2b476..cc78ba4 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,8 +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;
@@ -144,13 +233,15 @@ function gwvp_RepoAdminPageBody()
echo "
Your Repo's
";
$ownreps = gwvp_getOwnedRepos($_SESSION["id"]);
if($ownreps != false) {
- echo "";
- echo "Repo Name |
";
+ echo "";
+ echo "Repo Name | Repo description |
";
foreach($ownreps as $repos) {
$mjay = print_r($repos, true);
error_log("snafu: $mjay");
$reponame = $repos["name"];
- echo "$reponame |
";
+ $repodesc = $repos["description"];
+ $rid = $repos["id"];
+ echo "$reponame | $repodesc | Manage |
";
}
echo "
";
} else {
@@ -163,21 +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 "All Repositories
";
$rlist = gwvp_GetRepoList();
- echo "Repo Name | Repo Description | Repo Owner | Control |
";
+ 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 = gwvp_getUserName($u_res["owner"]);
- echo "$rname | $rdesc | $rown | Modify |
";
+ $manordetslink = "details";
+ $manordets = "Details";
+ if(isset($_SESSION["id"])) {
+ if(gwvp_canManageRepo($_SESSION["id"], $rid)) {
+ $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