summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBjörn Geiger2011-10-06 14:14:41 +0200
committerBjörn Geiger2011-10-06 14:14:41 +0200
commit6c8c5cb450d4fa69644c779d069cd27ab99bc2c4 (patch)
treef44bb814d7f956ad97886e2b3e197dc22d203af9
parentminor (diff)
downloadpbs2-6c8c5cb450d4fa69644c779d069cd27ab99bc2c4.tar.gz
pbs2-6c8c5cb450d4fa69644c779d069cd27ab99bc2c4.tar.xz
pbs2-6c8c5cb450d4fa69644c779d069cd27ab99bc2c4.zip
Kleine Änderung
-rwxr-xr-xapplication/controllers/ResourceController.php182
1 files changed, 88 insertions, 94 deletions
diff --git a/application/controllers/ResourceController.php b/application/controllers/ResourceController.php
index cd661c6..cb2275f 100755
--- a/application/controllers/ResourceController.php
+++ b/application/controllers/ResourceController.php
@@ -171,76 +171,76 @@ class ResourceController extends Zend_Controller_Action
header('HTTP/1.0 201 Bootos created');
}
-
-public function editbootosAction()
- {
-
- list($rightroles) = $this->rightrolesMapper->findBy(array('rightID' => '58', 'roleID' => $this->membership->getRoleID()));
- if($rightroles == null){
- header('HTTP/1.0 403 No Right to Edit Bootos');
- die();
- }
-
- $apikey = $this->_request->getParam('apikey');
- if($apikey == ""){
- header('HTTP/1.0 400 No API-Key');
- die();
- }
-
- $params = $this->_request->getParams();
- $source = $_SERVER['REMOTE_ADDR'];
-
- if($params['title'] == '' || $params['distro'] == '' || $params['distroversion'] == '' || $params['share'] == '' || $source == ''){
- header('HTTP/1.0 400 Title, Distro, Distroversion and Share must be set');
- die();
- }
-
- $bootos = new Application_Model_BootOs();
- $bootosMapper = new Application_Model_BootOsMapper();
- $groupID = $this->membership->getGroupID();
-
- list($bootos) = $bootosMapper->findBy(array('groupid' => $groupID, 'title' => $params['title'], 'distro' => $params['distro'], 'distroversion' => $params['distroversion'], 'source' => $source, 'share' => $params['share']));
-
- if($bootos == null){
- header('HTTP/1.0 400 Bootos not found');
- die();
- }
-
- $bootosID = $bootos->getID();
- $bootossrc = $bootos->getSource();
-
- $bootos->setOptions($params);
- $bootos->setID($bootosID);
- $bootos->setGroupID($groupID);
- $bootos->setSource($bootossrc);
- $bootos->setCreated(time());
- $bootos->setPublic('-1');
-
- $initpath = "../resources/bootos/".$bootosID."/initramfs/";
- $kernelpath = "../resources/bootos/".$bootosID."/kernel/";
- $configpath = "../resources/bootos/".$bootosID."/config/";
-
- mkdir($initpath ,0777, true);
- mkdir($kernelpath ,0777, true);
- mkdir($configpath ,0777, true);
-
- if($_FILES['config']['name'] != ''){
- $bootos->setSource($_SERVER['REMOTE_ADDR']);
- move_uploaded_file($_FILES['config']['tmp_name'], $configpath."default.tgz");
- }
- if($_FILES['kernel']['name'] != ''){
- $bootos->setSource($_SERVER['REMOTE_ADDR']);
- move_uploaded_file($_FILES['kernel']['tmp_name'], $kernelpath."kernel");
- }
- if($_FILES['init']['name'] != ''){
- $bootos->setSource($_SERVER['REMOTE_ADDR']);
- move_uploaded_file($_FILES['init']['tmp_name'], $initpath."initramfs");
- }
-
- $bootosMapper->save($bootos);
-
- header('HTTP/1.0 201 Bootos edited');
- }
+
+ public function editbootosAction()
+ {
+
+ list($rightroles) = $this->rightrolesMapper->findBy(array('rightID' => '58', 'roleID' => $this->membership->getRoleID()));
+ if($rightroles == null){
+ header('HTTP/1.0 403 No Right to Edit Bootos');
+ die();
+ }
+
+ $apikey = $this->_request->getParam('apikey');
+ if($apikey == ""){
+ header('HTTP/1.0 400 No API-Key');
+ die();
+ }
+
+ $params = $this->_request->getParams();
+ $source = $_SERVER['REMOTE_ADDR'];
+
+ if($params['title'] == '' || $params['distro'] == '' || $params['distroversion'] == '' || $params['share'] == '' || $source == ''){
+ header('HTTP/1.0 400 Title, Distro, Distroversion and Share must be set');
+ die();
+ }
+
+ $bootos = new Application_Model_BootOs();
+ $bootosMapper = new Application_Model_BootOsMapper();
+ $groupID = $this->membership->getGroupID();
+
+ list($bootos) = $bootosMapper->findBy(array('groupid' => $groupID, 'title' => $params['title'], 'distro' => $params['distro'], 'distroversion' => $params['distroversion'], 'source' => $source, 'share' => $params['share']));
+
+ if($bootos == null){
+ header('HTTP/1.0 400 Bootos not found');
+ die();
+ }
+
+ $bootosID = $bootos->getID();
+ $bootossrc = $bootos->getSource();
+
+ $bootos->setOptions($params);
+ $bootos->setID($bootosID);
+ $bootos->setGroupID($groupID);
+ $bootos->setSource($bootossrc);
+ $bootos->setCreated(time());
+ $bootos->setPublic('-1');
+
+ $initpath = "../resources/bootos/".$bootosID."/initramfs/";
+ $kernelpath = "../resources/bootos/".$bootosID."/kernel/";
+ $configpath = "../resources/bootos/".$bootosID."/config/";
+
+ mkdir($initpath ,0777, true);
+ mkdir($kernelpath ,0777, true);
+ mkdir($configpath ,0777, true);
+
+ if($_FILES['config']['name'] != ''){
+ $bootos->setSource($_SERVER['REMOTE_ADDR']);
+ move_uploaded_file($_FILES['config']['tmp_name'], $configpath."default.tgz");
+ }
+ if($_FILES['kernel']['name'] != ''){
+ $bootos->setSource($_SERVER['REMOTE_ADDR']);
+ move_uploaded_file($_FILES['kernel']['tmp_name'], $kernelpath."kernel");
+ }
+ if($_FILES['init']['name'] != ''){
+ $bootos->setSource($_SERVER['REMOTE_ADDR']);
+ move_uploaded_file($_FILES['init']['tmp_name'], $initpath."initramfs");
+ }
+
+ $bootosMapper->save($bootos);
+
+ header('HTTP/1.0 201 Bootos edited');
+ }
public function addfilterAction()
{
@@ -508,7 +508,7 @@ public function editbootosAction()
}
}
-
+
public function addprebootAction()
{
@@ -885,9 +885,22 @@ public function editbootosAction()
die();
}
} else {
- $bootos = $bootosMapper->findBy(array('groupid' => $groupID));
- $childBootos = $this->getbootosOfChildGroups($groupID, 1);
- $bootos = array_merge($bootos, $childBootos);
+ $bootos = $bootosMapper->findBy(array('groupID' => $groupID));
+ $groupgroupsMapper = new Application_Model_GroupGroupsMapper();
+ $parents = array();
+ $parents = $groupgroupsMapper->getParentGroups($groupID);
+ foreach($parents as $k => $parent) {
+ foreach($parent as $p) {
+ $results = $bootosMapper->findBy(array("groupID" => $p));
+ foreach ($results as $result) {
+ if($result->getPublic() - $k >= 0 ) {
+ $bootos[] = $result;
+ } else if($k == 0 && $result->getPublic() == -1 && Pbs_Acl::checkRight('boc')) {
+ $bootos[] = $result;
+ }
+ }
+ }
+ }
}
if($bootos == null){
@@ -944,25 +957,6 @@ public function editbootosAction()
echo $xml;
}
- private function getbootosOfChildGroups($groupID, $depth) {
- $groupgroupsMapper = new Application_Model_GroupGroupsMapper();
- $results = $groupgroupsMapper->findBy(array('parentID' => $groupID));
- $bootosMapper = new Application_Model_BootOsMapper();
- if(count($results)) {
- $bootos = array();
- foreach($results as $result) {
- $newbootos = $bootosMapper->findBy(array("groupID" => $result->getGroupID(), "public" => $depth));
- if(count($newbootos)) {
- $bootos = array_merge($bootos, $newbootos);
- }
- $bootos = array_merge($bootos, $this->getbootosOfChildGroups($result->getGroupID(), $depth + 1));
- }
- return $bootos;
- } else {
- return array();
- }
- }
-
public function getpoolAction() {
list($rightroles1) = $this->rightrolesMapper->findBy(array('rightID' => '79', 'roleID' => $this->membership->getRoleID()));
if($rightroles1 == null){
@@ -1397,4 +1391,4 @@ public function editbootosAction()
return $path;
}
-}
+} \ No newline at end of file