X-Git-Url: http://git.pjr.cc/?a=blobdiff_plain;f=plugins%2Fadmin.php;h=e7dcd142e81f10eb956bd970450387cd4471aef9;hb=155c0a1bc81dff4fc1bb4bcebb754c961e457499;hp=609047f56c4ce723a7e4906ff34671aaa53e491e;hpb=671e643949bab1c87d175bfc98ff086deb9c44ff;p=glcas.git diff --git a/plugins/admin.php b/plugins/admin.php index 609047f..e7dcd14 100644 --- a/plugins/admin.php +++ b/plugins/admin.php @@ -2,6 +2,10 @@ error_log("admin loaded"); +global $BASE_URL, $MENU_ITEMS; +$MENU_ITEMS["10admin"]["name"] = "Admin"; +$MENU_ITEMS["10admin"]["link"] = "$BASE_URL/admin"; + global $URL_HANDLERS; $URL_HANDLERS["admin.*"] = "GLCASAdmin"; global $CRON_CLASSES; @@ -30,6 +34,9 @@ class GLCASAdmin { GLCASpageBuilder($this,"doRepoNextForm"); return; break; + case "addrepoapt": + GLCASpageBuilder($this,"doAddRepoApt"); + return; case "addrepoyum": GLCASpageBuilder($this,"doAddRepoYum"); return; @@ -41,6 +48,10 @@ class GLCASAdmin { error_log("call setstorage"); GLCASpageBuilder($this, "setStorage"); return; + case "freezerepo": + error_log("call freezerepo"); + GLCASpageBuilder($this, "freezeRepo"); + return; case "scanrepo": break; } @@ -90,6 +101,22 @@ class GLCASAdmin { $this->mainBody($url); } + function freezeRepo($url) + { + $repo = $_REQUEST["repo"]; + + + $myRep = new GLCASRepo($this->config); + + + error_log("called freeze repo on $repo"); + $myRep->freezeRepo($repo); + + global $WEB_ROOT_FS, $URL_HANDLERS, $BASE_URL; + header("Location: $BASE_URL/admin/"); + + } + function doRemoveRepo($url) { $repo = $_REQUEST["repo"]; @@ -113,6 +140,8 @@ class GLCASAdmin { { $myRep = new GLCASRepo($this->config); + $kos = getKnownOSList(); + $wasyum = false; $wasapt = false; if($_REQUEST["repotype"] == "yumbase") { @@ -138,7 +167,7 @@ class GLCASAdmin { $extratext = ""; $provides = ""; if($glt["nrepos"] > 0) { - $kos = getKnownOSList(); + foreach($glt["knownrepo"] as $key => $val) { $reponame = $kos["apt"][$val]; //echo "Fount a repo, $val which is $reponame
"; @@ -148,15 +177,48 @@ class GLCASAdmin { } else { //echo "Looks like an apt repo, but I cant find any known distro's
"; } + //$existing_repos["distros"] = "Ubuntu, Debian"; + //$existing_repos["versions"] = "8.04LTS, 9.10, 10.04LTS, 10.10, 11.04, 11.10"; + //$existing_repos["arch"] = "x86_64, i386"; + + $distros = $glt["distros"]; + $version = $glt["versions"]; + $archs = $glt["arch"]; + + //echo "
";
+			//print_r($glt);
+			//echo "
"; + + echo "The joy of apt is that there could be a million distro's under the root of an apt mirror"; + echo "if it doesn't list here, but you know its there, its still usable for glcas"; echo "
"; echo ""; + echo ""; + echo ""; + echo ""; echo ""; echo ""; - echo ""; echo ""; echo ""; - echo ""; + echo ""; + echo ""; echo "
Description
Provides
Short URL
URL Prefix (blank for none)
Expire time for Meta Data days
Expire time for Meta Data days
"; echo "
"; return true; @@ -179,12 +241,52 @@ class GLCASAdmin { echo "Short URL"; echo "URL Prefix (blank for none)"; echo "Do Initial Update (can take a while, but done in background)"; - echo "Expire time for Meta Data days"; + echo "Expire time for Meta Data days"; echo ""; echo ""; echo ""; } } + + function doAddRepoApt($url) + { + $repo = new GLCASRepo($this->config); + + $desc = $_REQUEST["desc"]; + $OS = $_REQUEST["distro"]; + $version = $_REQUEST["provides"]; + $arch = $_REQUEST["arch"]; + $shorturl = $_REQUEST["shorturl"]; + $prefix = $_REQUEST["prefix"]; + $repurl = $_REQUEST["repourl"]; + $expiretime = $REQUEST["expiretime"]; + $init = false; + if(isset($_REQUEST["initial"])) $init = true; + + $blocklist = null; + $bn = 0; + foreach($_REQUEST as $key => $val) { + if(preg_match("/^blocked-*/", $key)) { + $blocked = preg_replace("/^blocked-/", "", $key); + //echo "
got block for $blocked
"; + $blocklist[$bn] = "dists\/$blocked.*"; + $bn++; + } + } + + //echo "
";
+		//print_r($_REQUEST);
+		//echo "
"; + + //exit(0); + + $repo->addRepo($desc, $OS, $version, $arch, "-", $shorturl, $prefix, $repurl, "APT", $init, $expiretime, $blocklist); + + // next we need to deal with that "blocked" bit + + global $WEB_ROOT_FS, $URL_HANDLERS, $BASE_URL; + header("Location: $BASE_URL/admin/"); + } function doAddRepoYum($url) { @@ -213,6 +315,8 @@ class GLCASAdmin { function doUpdateRepo($url) { $rkey = $_REQUEST["repo"]; + + error_log("would update for repo"); $repo = new GLCASRepo($this->config); @@ -243,9 +347,18 @@ class GLCASAdmin { $repotype = $rval["repotype"]; $prefix = $rval["prefix"]; $shorturl = $rval["shorturl"]; + if(isset($rval["frozen"])) $frozen = $rval["frozen"]; + else $frozen = false; if($prefix == "") $prefix = "-"; if($shorturl == "") $shorturl = "-"; - echo "$desc$repotype$os$version$arch$other$prefix$shorturl"; + if($frozen) { + $bgcol = "bgcolor=\"#bbbbff\""; + $frotext = "Unfreeze"; + } else { + $frotext = "Freeze"; + $bgcol = ""; + } + echo "$desc$repotype$os$version$arch$other$prefix$shorturl"; // get url $browseurl = "$BASE_URL/repo/$rkey"; @@ -260,9 +373,9 @@ class GLCASAdmin { // Edit echo "Edit "; // update - echo "Update "; + if(!$frozen) echo "Update "; // freeze - echo "Freeze "; + echo "$frotext "; // deactivate echo "Disable "; // clean @@ -280,14 +393,13 @@ class GLCASAdmin { //echo ""; // wrap all this in a table - echo "
"; + echo "
"; // now, add a repo echo "

Add A Repo

"; echo "
"; echo "Type
"; echo "URL
"; echo "
"; @@ -301,21 +413,52 @@ class GLCASAdmin { echo "Hint
"; echo "URL
"; echo "
"; echo "
"; - echo "

"; + echo "
"; + + // now for mirror lists + echo "

Via Mirrolist - not implemented

"; + echo "
"; + echo "Distro
"; + echo "Architecture
"; + echo "Version
"; + echo "Get updates too
"; + echo "
"; + echo "
"; + + + echo "
"; // repo storage location - echo "

Storage


"; + echo "

Storage


"; echo "
"; - $storloc = $this->config->getConfigVar("storagelocation"); - echo ""; + $storloc = $this->config->getConfig("storagelocation"); + echo ""; echo ""; echo "
"; + + echo "
"; + echo "

Proxy Config


"; + echo "
"; + $proxyaddress = $this->config->getConfig("proxyaddress"); + $proxylogin = $this->config->getConfig("proxylogin"); + $proxypass = $this->config->getConfig("proxypass"); + echo "Proxy Address
"; + echo "Proxy Login
"; + echo "Proxy Password
"; + echo ""; + echo "
"; + } private $config;