added a few comments on the repo addition 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\")<br>";
88         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</i></td></tr>";
89         
90         echo "<tr><td>Default Permisison Set</td><td bgcolor=\"#eeeeee\">";
91         
92         echo "<table>";
93         echo "<tr><td><input type=\"checkbox\" name=\"permsall\" checked></td><td>Anyone Can Read, Only you can write</td></tr>";
94         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>";
95         echo "<tr><td><input type=\"checkbox\" name=\"permsinvisible\"></td><td>Repository only visible to you</td></tr>";
96         echo "</table>";
97         
98         
99         echo "</td><td><i>Permissions can be changed in repository management later</i></td></tr>";
100         
101         echo "</table>";
102         
103         
104         
105         
106         
107         echo "<input type=\"submit\" name=\"create\" value=\"Create\"><br>";
108         echo "</form>";
109 }
110
111 function gwvp_RepoAdminPageBody()
112 {
113         // first we need a menu
114         global $BASE_URL;
115         
116         echo "<h2>Repo Management</h2>";
117         echo "<a href=\"$BASE_URL/admin/repos/create\">Create a Repo</a><br>";
118         
119         if(isset($_SESSION["isloggedin"])) {
120                 echo "<h3>Your Repo's</h3>";
121                 $ownreps = gwvp_getOwnedRepos($_SESSION["id"]);
122                 if($ownreps != false) {
123                         echo "<table>";
124                         echo "<tr><th>Repo Name</th></tr>";
125                         foreach($ownreps as $repos) {
126                                 $mjay = print_r($repos, true);
127                                 error_log("snafu: $mjay");
128                                 $reponame = $repos["name"];
129                                 echo "<tr><td>$reponame</td></tr>";
130                         }
131                         echo "</table>";
132                 } else {
133                         echo "You own no repositories";
134                 }
135                 echo "<hr>";
136         }
137         
138         
139         // next we need a repo list - with perms checking - ug
140         // i must also remember that the home page will also contain a list of repos and that this page is solely for maintance
141         // and creation of repos - so i dont need to get over-worked about the info stored on this page outside of those activities
142         $rlist = gwvp_GetRepoList();
143         echo "<table border=\"1\"><tr><th>Repo Name</th><th>Repo Description</th><th>Repo Owner</th><th>Control</th></tr>";
144         foreach($rlist as $u_res) {
145                 $rid = $u_res["id"];
146                 $rname = $u_res["name"];
147                 $rdesc = $u_res["description"];
148                 $rown = gwvp_getUserName($u_res["owner"]);
149                 echo "<tr><td>$rname</td><td>$rdesc</td><td>$rown</td><td><a href=\"$BASE_URL/admin/repos/modify/$rid\">Modify</a></td></tr>";
150         }
151         echo "</table>";
152         
153         return;
154 }
155
156 // this funciton returns one of three things
157 function gwvp_resolvRepoPerms($userid, $repoid)
158 {
159         
160 }
161
162
163
164 ?>