2 global $HOME_PAGE_PROVIDERS;
5 $CALL_ME_FUNCTIONS["repoview"] = "gwvpmini_RepoViewCallMe";
9 function gwvpmini_RepoViewCallMe()
11 global $repo_view_call;
13 error_log("in admin callme");
\r
14 if(isset($_REQUEST["q"])) {
\r
15 $query = $_REQUEST["q"];
\r
16 $qspl = explode("/", $query);
\r
17 if(isset($qspl[0])) {
\r
18 if($qspl[0] == "view") {
\r
20 $repo_view_call = $qspl[1];
21 return "gwvpmini_RepoViewPage";
\r
22 } else return false;
\r
24 if($qspl[0] == "updaterepobaseperms") {
25 return "gwvpmini_UpdateRepoBasePerms";
37 function gwvpmini_RepoViewPage()
\r
39 global $repo_view_call, $MENU_ITEMS, $BASE_URL;
\r
41 $MENU_ITEMS["40thisrepo"]["text"] = "$repo_view_call";
\r
42 $MENU_ITEMS["40thisrepo"]["link"] = "$BASE_URL/view/$repo_view_call";
\r
44 gwvpmini_goMainPage("gwvpmini_RepoViewPageBody");
\r
47 function gwvpmini_RepoViewPageBody()
49 global $repo_view_call, $MENU_ITEMS, $BASE_URL;
51 $repo_base = gwvpmini_getConfigVal("repodir");
\r
53 $owner_view = false;
\r
55 if($_SERVER["SERVER_PORT"] == 443) $proto="https://";
56 else $proto = "http://";
57 $sname = $_SERVER["SERVER_NAME"];
59 $owner = gwvpmini_GetRepoOwnerDetailsFromName($repo_view_call);
60 $desc = gwvpmini_GetRepoDescFromName($repo_view_call);
62 $owner_name = $owner["username"];
65 if(isset($_SESSION["id"])) {
66 if($owner["id"] == $_SESSION["id"]) {
72 error_log("STUFF:".print_r($owner,true));
73 $cloneurl = "git clone $proto$sname$BASE_URL/git/$repo_view_call.git";
74 echo "<textarea rows=1 cols=".strlen($cloneurl).">$cloneurl</textarea><br>";
76 if($owner_view) $owner_extra = " (YOU)";
77 else $owner_extra = "";
\r
79 echo "<h2>".get_gravatar($owner["email"], 30, 'mm', 'g', true)."$repo_view_call - $owner_name$owner_extra</h2>";
80 echo "<b>$desc</b><br>";
83 $bperms = gwvpmini_GetRepoPerm(gwvpmini_GetRepoId($repo_view_call), "b");
88 if($bperms == "a") $anyo = " selected";
\r
89 if($bperms == "r") $regd = " selected";
\r
90 if($bperms == "x") $expl = " selected";
\r
92 error_log("BPERMS: $bperms");
94 echo "<form method=\"post\" action=\"$BASE_URL/updaterepobaseperms/$repo_view_call\">";
95 echo "Base Permissions ";
96 echo "<select name=\"base_perms\">";
97 echo "<option value=\"a\"$anyo>Anyone can read</option>";
98 echo "<option value=\"r\"$regd>Only registered users can read</option>";
99 echo "<option value=\"x\"$expl>Explicit read permissions</option>";
101 echo "<input type=\"submit\" name=\"Set\" value=\"Set\">";
104 //echo "command: git log --git-dir=$repo_base/$repo_view_call.git --pretty=format:\"%H\" -10";
105 $rs = popen("git --git-dir=$repo_base/$repo_view_call.git log --pretty=format:\"%H\" -10", "r");
106 $commitids = array();
111 if($flin !== false) {
112 $commitids[$i] = trim($flin);
121 if($commitids != false) {
122 echo "<hr>Commits<br>";
123 echo "<table border=\"1\">";
124 echo "<tr><th>Committed By</th><th>Date</th><th>Commit Log Entry</th></tr>";
125 foreach($commitids as $ids) {
126 $rs = popen("git --git-dir=$repo_base/$repo_view_call.git log --pretty=format:\"%at%n%ce%n%an%n%s\" $ids -1 2> /dev/null", "r");
128 $flin1 = trim(fgets($rs));
129 $flin2 = trim(fgets($rs));
130 $flin3 = trim(fgets($rs));
132 $flin4 = fread($rs, 8192);
134 $flon = gwvpmini_emailToUserLink($flin2);
136 $flon = "$flin3 (external)";
139 echo "<tr><td>".get_gravatar($flin2, 18, 'mm', 'g', true)."$flon</td><td>$flin1</td><td>$flin4</td></tr>";
143 echo "No commit information available yet<br>";
147 function gwvpmini_UpdateRepoBasePerms()
149 global $BASE_URL, $repo_view_call;
151 if(isset($_REQUEST["q"])) {
\r
152 $query = $_REQUEST["q"];
\r
153 $qspl = explode("/", $query);
154 error_log("PLOOP:qview".print_r($qspl, true));
\r
157 if(isset($qspl[1])) $repo_view_call = $qspl[1];
159 error_log("PLOOP: no repo name");
160 header("Location: $BASE_URL/view/$repo_view_call");
164 $newperms = $_REQUEST["base_perms"];
166 $owner = gwvpmini_GetRepoOwnerDetailsFromName($repo_view_call);
\r
167 $desc = gwvpmini_GetRepoDescFromName($repo_view_call);
\r
169 $owner_name = $owner["username"];
172 if(isset($_SESSION["id"])) {
\r
173 if($owner["id"] == $_SESSION["id"]) {
\r
174 $owner_view = true;
\r
178 $rid = gwvpmini_GetRepoId($repo_view_call);
181 gwvpmini_SendMessage("error", "failure updating permission for repo");
182 error_log("PLOOP: attempt to update from non-owner");
184 error_log("PLOOP: updateds: ".print_r($_REQUEST, true));
185 gwvpmini_ChangeRepoPerm($rid, "b", $_REQUEST["base_perms"]);
186 gwvpmini_SendMessage("info", "Base permissions for repo updated");
189 header("Location: $BASE_URL/view/$repo_view_call");