replacing the cli cmds with variables and configuration in config.php
[gwvp-mini.git] / gwvpmini / gwvpmini_view.php
index d1b7eaa..92ac981 100644 (file)
@@ -10,7 +10,7 @@ function gwvpmini_RepoViewCallMe()
 {
        global $repo_view_call;
        
-       error_log("in admin callme");\r
+       // error_log("in admin callme");\r
        if(isset($_REQUEST["q"])) {\r
                $query = $_REQUEST["q"];\r
                $qspl = explode("/", $query);\r
@@ -36,6 +36,9 @@ function gwvpmini_RepoViewCallMe()
                        if($qspl[0] == "reporemovecontribs") {
                                return "gwvpmini_RemoveRepoContributor";
                        }
+                       if($qspl[0] == "repoupdatedesc") {
+                               return "gwvpmini_RepoUpdateDescription";
+                       }
                        return false;\r
                }\r
                else return false;\r
@@ -62,6 +65,9 @@ function gwvpmini_RepoViewPageBody()
        
        $repo_base = gwvpmini_getConfigVal("repodir");\r
 
+       $bperms_f = gwvpmini_GetRepoPerms(gwvpmini_GetRepoId($repo_view_call));
+       $bperms = $bperms_f["b"];
+       
        $owner_view = false;\r
        
        if($_SERVER["SERVER_PORT"] == 443) $proto="https://";
@@ -70,31 +76,51 @@ function gwvpmini_RepoViewPageBody()
        
        $owner = gwvpmini_GetRepoOwnerDetailsFromName($repo_view_call);
        $desc = gwvpmini_GetRepoDescFromName($repo_view_call);
+       $editdesc = preg_replace("/\<br\>/", "\n", $desc);
        
-       $owner_name = $owner["username"];
+       $rid = gwvpmini_GetRepoId($repo_view_call);
        
+       $owner_name = $owner["username"];
        
+       // TODO: fix this so that if user has no read access to repo, they cant see it
        if(isset($_SESSION["id"])) {
                if($owner["id"] == $_SESSION["id"]) {
                        $owner_view = true;
+               } else if ($bperms != "r") {
+                       // check user level perms
+                       $perm = gwvpmini_GetRepoPerm($rid, $_SESSION["id"]);
+                       if($perm < 1) {
+                               header("Location: $BASE_URL");\r
+                               return;
+                       }
+               }
+       } else {
+               if($bperms != "a") {
+                       header("Location: $BASE_URL");
+                       return;
                }
        }
        
        
-       error_log("STUFF:".print_r($owner,true));
-       $cloneurl = "git clone $proto$sname$BASE_URL/git/$repo_view_call.git";
+       // error_log("STUFF:".print_r($owner,true));
+       if($bperms != "a") $login = $_SESSION["username"].":password@";
+       else $login = "";
+       $cloneurl = "git clone $proto$login$sname$BASE_URL/git/$repo_view_call.git";
        echo "<textarea rows=1 cols=".strlen($cloneurl).">$cloneurl</textarea><br>";
        
        if($owner_view) $owner_extra = " (YOU)";
        else $owner_extra = "";\r
        
-       echo "<h2>".get_gravatar($owner["email"], 30, 'mm', 'g', true)."$repo_view_call - $owner_name$owner_extra</h2>";
-       echo "<b>$desc</b><br>";
+       echo "<h2>".gwvpmini_HtmlGravatar($owner["email"], 30)."$repo_view_call - $owner_name$owner_extra</h2>";
+       if(!$owner_view) echo "$desc<br>";
        
        if($owner_view) {
-               $bperms_f = gwvpmini_GetRepoPerms(gwvpmini_GetRepoId($repo_view_call));
+               echo "<form method=\"post\" action=\"$BASE_URL/repoupdatedesc/$repo_view_call\">";\r
+               echo "<h3>Description<h3><textarea name=\"desc\" cols=\"120\" rows=\"5\">$editdesc</textarea><br><input type=\"submit\" name=\"Update\" value=\"Update\">";\r
+               echo "</form><br>";\r
+               
                
-               $bperms = $bperms_f["b"];
+
                
                $anyo = "";
                $regd = "";
@@ -103,7 +129,7 @@ function gwvpmini_RepoViewPageBody()
                if($bperms == "r") $regd = " selected";\r
                if($bperms == "x") $expl = " selected";\r
                
-               error_log("BPERMS: $bperms");
+               // error_log("BPERMS: $bperms");
                
                if($bperms == "x") $cspan = 3;
                else $cspan = 2;
@@ -124,7 +150,7 @@ function gwvpmini_RepoViewPageBody()
                        foreach($bperms_f as $key=>$val) {
                                if($val == 1) {
                                        $dets = gwvpmini_getUser(null, null, $key);
-                                       echo get_gravatar($dets["email"], 18, 'mm', 'g', true)." <input type=\"checkbox\" name=\"$key\"> ".$dets["username"]."<br>";
+                                       echo gwvpmini_HtmlGravatar($dets["email"], 18, " ")."<input type=\"checkbox\" name=\"$key\"> ".$dets["username"]."<br>";
                                        $nl = 1;
                                }
                        }
@@ -141,7 +167,7 @@ function gwvpmini_RepoViewPageBody()
                foreach($bperms_f as $key=>$val) {\r
                        if($val == 2) {\r
                                $dets = gwvpmini_getUser(null, null, $key);\r
-                               echo get_gravatar($dets["email"], 18, 'mm', 'g', true)." <input type=\"checkbox\" name=\"$key\"> ".$dets["username"]."<br>";
+                               echo gwvpmini_HtmlGravatar($dets["email"], 18, " ")."<input type=\"checkbox\" name=\"$key\"> ".$dets["username"]."<br>";
                                $nl = 1;\r
                        }\r
                }\r
@@ -152,6 +178,7 @@ function gwvpmini_RepoViewPageBody()
                echo "<input type=\"text\" name=\"contribusername\"> <input type=\"submit\" name=\"Add\" value=\"Add\">";
                echo "</form><br>";
                echo "</td></tr></table>";
+               
        }
        //echo "command: git log --git-dir=$repo_base/$repo_view_call.git --pretty=format:\"%H\" -10";
        $rs = popen("git --git-dir=$repo_base/$repo_view_call.git log --pretty=format:\"%H\" -10", "r");
@@ -188,7 +215,8 @@ function gwvpmini_RepoViewPageBody()
                                        $flon = "$flin3 (external)";
                                }
                        }
-                       echo "<tr><td>".get_gravatar($flin2, 18, 'mm', 'g', true)."$flon</td><td>$flin1</td><td>$flin4</td></tr>";
+                       $timedifftxt = gwvpmini_TimeDiffText($flin1);
+                       echo "<tr><td>".gwvpmini_HtmlGravatar($flin2, 18)."$flon</td><td>$timedifftxt</td><td>$flin4</td></tr>";
                }
                echo "</table>";
        } else {
@@ -203,12 +231,12 @@ function gwvpmini_UpdateRepoBasePerms()
        if(isset($_REQUEST["q"])) {\r
                $query = $_REQUEST["q"];\r
                $qspl = explode("/", $query);
-               error_log("PLOOP:qview".print_r($qspl, true));\r
+               // error_log("PLOOP:qview".print_r($qspl, true));\r
        }
        
        if(isset($qspl[1])) $repo_view_call = $qspl[1];
        else {
-               error_log("PLOOP: no repo name");
+               // error_log("PLOOP: no repo name");
                header("Location: $BASE_URL/view/$repo_view_call");
                return;
        }
@@ -231,9 +259,9 @@ function gwvpmini_UpdateRepoBasePerms()
        
        if(!$owner_view) {
                gwvpmini_SendMessage("error", "failure updating permission for repo");
-               error_log("PLOOP: attempt to update from non-owner");
+               // error_log("PLOOP: attempt to update from non-owner");
        } else {
-               error_log("PLOOP: updateds: ".print_r($_REQUEST, true));
+               // error_log("PLOOP: updateds: ".print_r($_REQUEST, true));
                gwvpmini_ChangeRepoPerm($rid, "b", $_REQUEST["base_perms"]);
                gwvpmini_SendMessage("info", "Base permissions for repo updated");
        }\r
@@ -248,12 +276,12 @@ function gwvpmini_AddRepoReader()
        if(isset($_REQUEST["q"])) {\r
                $query = $_REQUEST["q"];\r
                $qspl = explode("/", $query);\r
-               error_log("PLOOP:qview".print_r($qspl, true));\r
+               // error_log("PLOOP:qview".print_r($qspl, true));\r
        }\r
        \r
        if(isset($qspl[1])) $repo_view_call = $qspl[1];\r
        else {\r
-               error_log("PLOOP: no repo name");
+               // error_log("PLOOP: no repo name");
                // TODO: btw, this makes no sense\r
                header("Location: $BASE_URL/view/$repo_view_call");\r
                return;\r
@@ -274,7 +302,7 @@ function gwvpmini_AddRepoReader()
        }
        if(!$owner_view) {
                gwvpmini_SendMessage("error", "failure updating permission for repo");\r
-               error_log("PLOOP: attempt to update from non-owner");
+               // error_log("PLOOP: attempt to update from non-owner");
                header("Location: $BASE_URL/view/$repo_view_call");
                return;
        }\r
@@ -310,12 +338,12 @@ function gwvpmini_AddRepoContributor()
        if(isset($_REQUEST["q"])) {\r
                $query = $_REQUEST["q"];\r
                $qspl = explode("/", $query);\r
-               error_log("PLOOP:qview".print_r($qspl, true));\r
+               // error_log("PLOOP:qview".print_r($qspl, true));\r
        }\r
        \r
        if(isset($qspl[1])) $repo_view_call = $qspl[1];\r
        else {\r
-               error_log("PLOOP: no repo name");\r
+               // error_log("PLOOP: no repo name");\r
                // TODO: btw, this makes no sense\r
                header("Location: $BASE_URL/view/$repo_view_call");\r
                return;\r
@@ -336,7 +364,7 @@ function gwvpmini_AddRepoContributor()
        }\r
        if(!$owner_view) {\r
                gwvpmini_SendMessage("error", "failure updating permission for repo");\r
-               error_log("PLOOP: attempt to update from non-owner");\r
+               // error_log("PLOOP: attempt to update from non-owner");\r
                header("Location: $BASE_URL/view/$repo_view_call");\r
                return;\r
        }\r
@@ -371,12 +399,12 @@ function gwvpmini_RemoveRepoContributor()
        if(isset($_REQUEST["q"])) {\r
                $query = $_REQUEST["q"];\r
                $qspl = explode("/", $query);\r
-               error_log("PLOOP:qview".print_r($qspl, true));\r
+               // error_log("PLOOP:qview".print_r($qspl, true));\r
        }\r
        \r
        if(isset($qspl[1])) $repo_view_call = $qspl[1];\r
        else {\r
-               error_log("PLOOP: no repo name");\r
+               // error_log("PLOOP: no repo name");\r
                // TODO: btw, this makes no sense\r
                header("Location: $BASE_URL/view/$repo_view_call");\r
                return;\r
@@ -396,7 +424,7 @@ function gwvpmini_RemoveRepoContributor()
        }\r
        if(!$owner_view) {\r
                gwvpmini_SendMessage("error", "failure updating permission for repo");\r
-               error_log("PLOOP: attempt to update from non-owner");\r
+               // error_log("PLOOP: attempt to update from non-owner");\r
                header("Location: $BASE_URL/view/$repo_view_call");\r
                return;\r
        }
@@ -428,12 +456,12 @@ function gwvpmini_RemoveRepoReader()
        if(isset($_REQUEST["q"])) {\r
                $query = $_REQUEST["q"];\r
                $qspl = explode("/", $query);\r
-               error_log("PLOOP:qview".print_r($qspl, true));\r
+               // error_log("PLOOP:qview".print_r($qspl, true));\r
        }\r
 \r
        if(isset($qspl[1])) $repo_view_call = $qspl[1];\r
        else {\r
-               error_log("PLOOP: no repo name");\r
+               // error_log("PLOOP: no repo name");\r
                // TODO: btw, this makes no sense\r
                header("Location: $BASE_URL/view/$repo_view_call");\r
                return;\r
@@ -453,7 +481,7 @@ function gwvpmini_RemoveRepoReader()
        }\r
        if(!$owner_view) {\r
                gwvpmini_SendMessage("error", "failure updating permission for repo");\r
-               error_log("PLOOP: attempt to update from non-owner");\r
+               // error_log("PLOOP: attempt to update from non-owner");\r
                header("Location: $BASE_URL/view/$repo_view_call");\r
                return;\r
        }\r
@@ -474,6 +502,52 @@ function gwvpmini_RemoveRepoReader()
        header("Location: $BASE_URL/view/$repo_view_call");\r
        return;\r
 \r
+}
+
+function gwvpmini_RepoUpdateDescription()
+{
+       global $BASE_URL, $repo_view_call;\r
+       \r
+       if(isset($_REQUEST["q"])) {\r
+               $query = $_REQUEST["q"];\r
+               $qspl = explode("/", $query);\r
+               // error_log("PLOOP:qview".print_r($qspl, true));\r
+       }\r
+       \r
+       if(isset($qspl[1])) $repo_view_call = $qspl[1];\r
+       else {\r
+               // error_log("PLOOP: no repo name");\r
+               // TODO: btw, this makes no sense\r
+               header("Location: $BASE_URL/view/$repo_view_call");\r
+               return;\r
+       }\r
+       \r
+       \r
+       $owner = gwvpmini_GetRepoOwnerDetailsFromName($repo_view_call);\r
+       $desc = gwvpmini_GetRepoDescFromName($repo_view_call);\r
+       \r
+       $owner_name = $owner["username"];\r
+       \r
+       $owner_view = false;\r
+       if(isset($_SESSION["id"])) {\r
+               if($owner["id"] == $_SESSION["id"]) {\r
+                       $owner_view = true;\r
+               }\r
+       }\r
+       if(!$owner_view) {\r
+               gwvpmini_SendMessage("error", "failure updating description for repo");\r
+               // error_log("PLOOP: attempt to update from non-owner");\r
+               header("Location: $BASE_URL/view/$repo_view_call");\r
+               return;\r
+       }\r
+       \r
+       $rid = gwvpmini_GetRepoId($repo_view_call);\r
+       \r
+       gwvpmini_UpdateRepoDescription($rid, $_REQUEST["desc"]);
+               \r
+       gwvpmini_SendMessage("info", "Repo description updated");\r
+       header("Location: $BASE_URL/view/$repo_view_call");\r
+       return;
 }\r
 
 ?>
\ No newline at end of file