basic permissions work
[gwvp-mini.git] / gwvpmini / gwvpmini_gitrepo.php
index 8ad5725..3ea498c 100644 (file)
@@ -53,8 +53,8 @@ function gwvpmini_RepoMainPageBody()
 {
        global $BASE_URL;
        
-       gwvpmini_GitCreateRepoForm();
        if(gwvpmini_isLoggedIn()) {
+               gwvpmini_GitCreateRepoForm();
                $repos = gwvpmini_GetOwnedRepos($_SESSION["username"]);
                if(!$repos) {
                        echo "You currently own no repos<br>";  
@@ -66,10 +66,17 @@ function gwvpmini_RepoMainPageBody()
                                $desc = $repo["desc"];
                                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
-                               error_log("CMD: $cmd");\r
-                               system("$cmd");\r
+                               error_log("CMD: $cmd");
+                               //system("$cmd");
+                               $fls = popen($cmd, "r");
+                               $tks = "";
+                               if($fls !== false) while(!feof($fls)) {
+                                       $tks .= fread($fls,1024);
+                               }
+                               
+                               if($tks == "") {
+                                       echo "No Log Info Yet";
+                               } else echo $tks;
                                echo "</td>";
                                echo "</tr>";
                        }
@@ -109,9 +116,18 @@ function gwvpmini_GitLogProvider()
                                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";
+                               $cmd = "git --git-dir=\"$repo_base/$name.git\" log -1 2> /dev/null";
                                error_log("CMD: $cmd");
-                               system("$cmd");
+                               //system("$cmd");
+                               $fls = popen($cmd, "r");
+                               $tks = "";
+                               if($fls !== false) while(!feof($fls)) {
+                                       $tks .= fread($fls,1024);
+                               }
+                               
+                               if($tks == "") {
+                                       echo "No Log Info Yet";
+                               } else echo $tks;
                                echo "</td>";
                                echo "</tr>";
                        }
@@ -186,4 +202,40 @@ function gwvpmini_HaveRepo($reponame)
        if(file_exists("$repo_base/$reponame.git")) return true;
 }
 
+
+function gwvpmini_RemoveRepo($rid)
+{
+       $repo_base = gwvpmini_getConfigVal("repodir");
+       
+       $repdet = gwvpmini_getRepo(null, null, $rid);
+       
+       $rname = $repdet["name"];
+       
+       error_log("FROM PANTS:".print_r($repdet,true)." ----------- ".print_r($rname, true));
+       
+       if($repdet != false && $rname != "") {
+               if(file_exists("$repo_base/$rname.git")) {
+                       // recursive remove - frightening
+                       if(gwvpmini_RecursiveDelete("$repo_base/$rname.git")) {
+                               gwvpmini_RemoveRepoDB($rid);
+                       }
+               }
+       } return false;
+}
+
+function gwvpmini_RecursiveDelete($fpath)
+{
+       error_log("RECURSEDETELE: ".$fpath);
+       if(is_file($fpath)){\r
+               return @unlink($fpath);\r
+       }\r
+       elseif(is_dir($fpath)){\r
+               $scan = glob(rtrim($fpath,'/').'/*');\r
+               foreach($scan as $index=>$path){\r
+                       gwvpmini_RecursiveDelete($path);\r
+               }\r
+               return @rmdir($fpath);\r
+       }
+}
+       
 ?>
\ No newline at end of file