X-Git-Url: http://git.pjr.cc/?a=blobdiff_plain;f=gwvpmini%2Fgwvpmini_gitrepo.php;h=2b412288c7a6cb5b3b8c195a012a4b72b35a7b3c;hb=529c11c6cfff0c2d8b857eed0b5ace7f3be054da;hp=6f9264bd6ee7d0817ff358ac93ebb4d00584a331;hpb=42069486556c27a9ceff2108970c6fe1c5333bfd;p=gwvp-mini.git diff --git a/gwvpmini/gwvpmini_gitrepo.php b/gwvpmini/gwvpmini_gitrepo.php index 6f9264b..2b41228 100644 --- a/gwvpmini/gwvpmini_gitrepo.php +++ b/gwvpmini/gwvpmini_gitrepo.php @@ -51,8 +51,10 @@ function gwvpmini_RepoMainPage() function gwvpmini_RepoMainPageBody() { - gwvpmini_GitCreateRepoForm(); + global $BASE_URL; + if(gwvpmini_isLoggedIn()) { + gwvpmini_GitCreateRepoForm(); $repos = gwvpmini_GetOwnedRepos($_SESSION["username"]); if(!$repos) { echo "You currently own no repos
"; @@ -62,7 +64,7 @@ function gwvpmini_RepoMainPageBody() foreach($repos as $repo) { $name = $repo["name"]; $desc = $repo["desc"]; - echo "$name$desc"; + echo "$name$desc"; echo ""; $repo_base = gwvpmini_getConfigVal("repodir"); $cmd = "git --git-dir=\"$repo_base/$name.git\" log -1 2>&1"; @@ -90,6 +92,9 @@ function gwvpmini_GitLogProvider() * * Or... should we instead just list every repo? */ + + global $BASE_URL; + echo "

Repo Activity

"; if(gwvpmini_isLoggedIn()) { $repos = gwvpmini_GetOwnedRepos($_SESSION["username"]); @@ -101,7 +106,7 @@ function gwvpmini_GitLogProvider() foreach($repos as $repo) { $name = $repo["name"]; $desc = $repo["desc"]; - echo "$name$desc"; + echo "$name$desc"; echo ""; $repo_base = gwvpmini_getConfigVal("repodir"); $cmd = "git --git-dir=\"$repo_base/$name.git\" log -1 2>&1"; @@ -164,7 +169,7 @@ function gwvpmini_RepoCreate() gwvpmini_SendMessage("error", "Repo ".$_REQUEST["reponame"]." already exists"); 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"); } @@ -181,4 +186,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)){ + return @unlink($fpath); + } + elseif(is_dir($fpath)){ + $scan = glob(rtrim($fpath,'/').'/*'); + foreach($scan as $index=>$path){ + gwvpmini_RecursiveDelete($path); + } + return @rmdir($fpath); + } +} + ?> \ No newline at end of file