user add/remove
[gwvp-mini.git] / gwvpmini / gwvpmini_gitrepo.php
index 1f42a7f..8ad5725 100644 (file)
@@ -51,6 +51,8 @@ function gwvpmini_RepoMainPage()
 
 function gwvpmini_RepoMainPageBody()
 {
+       global $BASE_URL;
+       
        gwvpmini_GitCreateRepoForm();
        if(gwvpmini_isLoggedIn()) {
                $repos = gwvpmini_GetOwnedRepos($_SESSION["username"]);
@@ -62,7 +64,7 @@ function gwvpmini_RepoMainPageBody()
                        foreach($repos as $repo) {
                                $name = $repo["name"];
                                $desc = $repo["desc"];
-                               echo "<tr><td>$name</td><td>$desc</td>";
+                               echo "<tr><td><a href=\"$BASE_URL/view/$name\">$name</a></td><td>$desc</td>";
                                echo "<td>";\r
                                $repo_base = gwvpmini_getConfigVal("repodir");\r
                                $cmd = "git --git-dir=\"$repo_base/$name.git\" log -1 2>&1";\r
@@ -90,6 +92,9 @@ function gwvpmini_GitLogProvider()
        *\r
        * Or... should we instead just list every repo?\r
        */
+       
+       global $BASE_URL;
+       
        echo "<h2>Repo Activity</h2>";
        if(gwvpmini_isLoggedIn()) {\r
                $repos = gwvpmini_GetOwnedRepos($_SESSION["username"]);
@@ -101,7 +106,7 @@ function gwvpmini_GitLogProvider()
                        foreach($repos as $repo) {
                                $name = $repo["name"];
                                $desc = $repo["desc"];
-                               echo "<tr><td>$name</td><td>$desc</td>";
+                               echo "<tr><td><a href=\"$BASE_URL/view/$name\">$name</a></td><td>$desc</td>";
                                echo "<td>";
                                $repo_base = gwvpmini_getConfigVal("repodir");
                                $cmd = "git --git-dir=\"$repo_base/$name.git\" log -1 2>&1";
@@ -124,23 +129,47 @@ function gwvpmini_GitCreateRepoForm()
        echo "<tr><th colspan=\"2\">Create Repo</th></tr>";
        echo "<tr><th>Repo Name</th><td><input type=\"text\" name=\"reponame\"></td></tr>";
        echo "<tr><th>Repo Description</th><td><input type=\"text\" name=\"repodesc\"></td></tr>";
+       echo "<tr><th>Read Permissions</th><td>";
+       echo "<select name=\"perms\">";
+       echo "<option value=\"perms-public\">Anyone Can Read</option>";
+       echo "<option value=\"perms-registered\">Must be Registered To Read</option>";
+       echo "<option value=\"perms-onlywrite\">Only Writers can Read</option>";
+       echo "</select>";
+       echo "</td></tr>";
        echo "<tr><td colspan=\"2\"><input type=\"submit\" name=\"Create\" value=\"Create\"></td></tr>";
        echo "</table>";
        echo "</form>";
-}\r
+}
 
 function gwvpmini_RepoCreate()
 {
        
        global $BASE_URL;
        
-       if(gwvpmini_isLoggedIn()) {
+       // TODO: check the stuff out
+       // first reponame
+       $inputcheck = true;
+
+       // remove a .git at the end if it was input
+       $_REQUEST["reponame"] = preg_replace("/\.git$/", "", $_REQUEST["reponame"]);
+       
+       // check for valid chars
+       $replcheck = preg_replace("/[a-zA-Z0-9_\-\.]/", "", $_REQUEST["reponame"]);
+       if(strlen($replcheck)>0) {
+               $inputcheck = false;
+               $inputcheckerror = "Repo name contains invalid characters, repos can only contain a-z, A-Z, 0-9, _, - and .";
+       }
+       
+       if(!$inputcheck) {
+               gwvpmini_SendMessage("error", "$inputcheckerror");\r
+               header("Location: $BASE_URL/repos");
+       } else  if(gwvpmini_isLoggedIn()) {
                //gwvpmini_createGitRepo($name, $ownerid, $desc, $bundle=null, $defaultperms=0)
                if(gwvpmini_HaveRepo($_REQUEST["reponame"])) {
                        gwvpmini_SendMessage("error", "Repo ".$_REQUEST["reponame"]." already exists");\r
                        header("Location: $BASE_URL/repos");
                } else {
-                       gwvpmini_createGitRepo($_REQUEST["reponame"], $_SESSION["id"], $_REQUEST["repodesc"]);
+                       gwvpmini_createGitRepo($_REQUEST["reponame"], $_SESSION["id"], $_REQUEST["repodesc"], $_REQUEST["perms"]);
                        gwvpmini_SendMessage("info", "Repo ".$_REQUEST["reponame"]." has been created");
                        header("Location: $BASE_URL/repos");
                }