working on the user/group administration page.
[gwvp.git] / gwvplib / gwvprepoadmin.php
1 <?php
2 $CALL_ME_FUNCTIONS["repoadmin"] = "gwvp_RepoAdminCallMe";
3
4 $MENU_ITEMS["20repos"]["text"] = "Repo Admin";
5 $MENU_ITEMS["20repos"]["link"] = "$BASE_URL/admin/repos";
6
7 function gwvp_RepoAdminCallMe()
8 {
9         
10         error_log("in repoadmin callme");
11         if(isset($_REQUEST["q"])) {
12                 $query = $_REQUEST["q"];
13                 $qspl = explode("/", $query);
14                 if(isset($qspl[0]) && isset($qspl[1])) {
15                         if($qspl[0] == "admin" && $qspl[1] == "repos") {
16                                 error_log("i got here, where next?");
17                                 if(isset($qspl[2])) {
18                                         switch($qspl[2]) {
19                                                 case "create":
20                                                         return "gwvp_CreateRepoPage";
21                                                         break;
22                                                 case "docreate":
23                                                         return "gwvp_DoCreateRepoPage";
24                                                         break;
25                                                 default:
26                                                         return "gwvp_RepoAdminPage";
27                                         }                                       
28                                 } else {
29                                         return "gwvp_RepoAdminPage";
30                                 }
31                         }
32                 } 
33                 else return false;
34         }
35         
36         return false;
37 }
38
39 function gwvp_RepoAdminPage()
40 {
41         gwvp_goMainPage("gwvp_RepoAdminPageBody");
42 }
43
44 function gwvp_CreateRepoPage()
45 {
46         gwvp_goMainPage("gwvp_CreateRepoPageBody");
47 }
48
49 function gwvp_DoCreateRepoPage()
50 {
51         global $BASE_URL;
52         
53         $reponame = $_REQUEST["reponame"];
54         $repodesc = $_REQUEST["repodesc"];
55         
56         // TODO: this code is bollocks, need to redo
57         if(gwvp_repoExists($reponame)) {
58                 gwvp_SendMessage("error", "a repository with the name <b>\"$reponame\"</b> already exists");
59                 //header("Location: $BASE_URL/admin/repos/create?reponameobv=$reponame&repodescobv=$repodesc");
60         } else if($_FILES["bundlefile"]["size"] > 0) { //               if(isset($_FILES["bundlefile"]["size"]))  <--- this needs to happen here TODO
61                 error_log("bundle file tmpname is ".$_FILES["bundlefile"]["tmp_name"]);
62                 gwvp_createGitRepo($reponame, $_FILES["bundlefile"]["tmp_name"]);
63                 gwvp_SendMessage("info", "Repo, $reponame, created");
64         } else if(gwvp_createGitRepo($reponame)) {
65                 gwvp_SendMessage("info", "Repo, $reponame, created");
66         }
67         header("Location: $BASE_URL/admin/repos");
68         
69         
70 }
71
72 function gwvp_CreateRepoPageBody()
73 {
74         global $BASE_URL, $repo_base;
75         
76         $reponameobv = "";
77         $repodescobv = "";
78         
79         if(isset($_REQUEST["reponameobv"])) $reponameobv = $_REQUEST["reponameobv"];
80         if(isset($_REQUEST["repodescobv"])) $repodescobv = $_REQUEST["repodescobv"];
81         
82         echo "<h2>Create a Repo</h2>";
83         echo "<form method=\"post\" enctype=\"multipart/form-data\" action=\"$BASE_URL/admin/repos/docreate\">";
84         echo "<table>";
85         echo "<tr><td>Repository Name</td><td bgcolor=\"#eeeeee\"><input type=\"text\" name=\"reponame\" value=\"$reponameobv\"></td></tr>";
86         echo "<tr><td>Repository Description</td><td bgcolor=\"#eeeeee\"><input type=\"text\" name=\"repodesc\" value=\"$repodescobv\"></td></tr>";
87         echo "<tr><td>Repository Bundle</td><td bgcolor=\"#eeeeee\"><input type=\"file\" name=\"bundlefile\"></td><td><i>Create a bundle for pro-creating the git repository (export your git bundle with \"git bundle create /tmp/filename --branches\")</i></td></tr>";
88         
89         echo "<tr><td>Default Permisison Set</td><td bgcolor=\"#eeeeee\">";
90         
91         echo "<table>";
92         echo "<tr><td><input type=\"checkbox\" name=\"permsall\" checked></td><td>Anyone Can Read, Only you can write</td></tr>";
93         echo "<tr><td><input type=\"checkbox\" name=\"permsmeonly\"></td><td>Anyone can see the repository exists, but only you can read or write to it</td></tr>";
94         echo "<tr><td><input type=\"checkbox\" name=\"permsinvisible\"></td><td>Repository only visible to you</td></tr>";
95         echo "</table>";
96         
97         
98         echo "</td><td><i>Permissions can be changed in repository management later</i></td></tr>";
99         
100         echo "</table>";
101         
102         
103         
104         
105         
106         echo "<input type=\"submit\" name=\"create\" value=\"Create\"><br>";
107         echo "</form>";
108 }
109
110 function gwvp_RepoAdminPageBody()
111 {
112         // first we need a menu
113         global $BASE_URL;
114         
115         echo "<h2>Repo Management</h2>";
116         echo "<a href=\"$BASE_URL/admin/repos/create\">Create a Repo</a><br>";
117         
118         
119         // next we need a repo list - with perms checking - ug
120         // i must also remember that the home page will also contain a list of repos and that this page is solely for maintance
121         // and creation of repos - so i dont need to get over-worked about the info stored on this page outside of those activities
122         $rlist = gwvp_GetRepoList();
123         echo "<table border=\"1\"><tr><th>Repo Name</th><th>Repo Description</th><th>Repo Owner</th><th>Control</th></tr>";
124         foreach($rlist as $u_res) {
125                 $rid = $u_res["id"];
126                 $rname = $u_res["name"];
127                 $rdesc = $u_res["description"];
128                 $rown = gwvp_getUserName($u_res["owner"]);
129                 echo "<tr><td>$rname</td><td>$rdesc</td><td>$rown</td><td><a href=\"$BASE_URL/admin/repos/modify/$rid\">Modify</a></td></tr>";
130         }
131         echo "</table>";
132         
133         return;
134 }
135
136
137
138 ?>