665aeffa7d121314483a3ead703f49a9bc0eacd6
[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         if(isset($_SESSION["isloggedin"])) {
119                 echo "<h3>Your Repo's</h3>";
120                 $ownreps = gwvp_getOwnedRepos($_SESSION["id"]);
121                 if($ownreps != false) {
122                         echo "<table>";
123                         echo "<tr><th>Repo Name</th></tr>";
124                         foreach($ownreps as $repos) {
125                                 $mjay = print_r($repos, true);
126                                 error_log("snafu: $mjay");
127                                 $reponame = $repos["name"];
128                                 echo "<tr><td>$reponame</td></tr>";
129                         }
130                         echo "</table>";
131                 } else {
132                         echo "You own no repositories";
133                 }
134                 echo "<hr>";
135         }
136         
137         
138         // next we need a repo list - with perms checking - ug
139         // i must also remember that the home page will also contain a list of repos and that this page is solely for maintance
140         // and creation of repos - so i dont need to get over-worked about the info stored on this page outside of those activities
141         $rlist = gwvp_GetRepoList();
142         echo "<table border=\"1\"><tr><th>Repo Name</th><th>Repo Description</th><th>Repo Owner</th><th>Control</th></tr>";
143         foreach($rlist as $u_res) {
144                 $rid = $u_res["id"];
145                 $rname = $u_res["name"];
146                 $rdesc = $u_res["description"];
147                 $rown = gwvp_getUserName($u_res["owner"]);
148                 echo "<tr><td>$rname</td><td>$rdesc</td><td>$rown</td><td><a href=\"$BASE_URL/admin/repos/modify/$rid\">Modify</a></td></tr>";
149         }
150         echo "</table>";
151         
152         return;
153 }
154
155 // this funciton returns one of three things
156 function gwvp_resolvRepoPerms($userid, $repoid)
157 {
158         
159 }
160
161
162
163 ?>