diff options
| author | michael pereira | 2011-04-20 18:35:39 +0200 |
|---|---|---|
| committer | michael pereira | 2011-04-20 18:35:39 +0200 |
| commit | 3df435742ef6d814f411ab9f4d405cc06eba1dab (patch) | |
| tree | 48e047451ac032fe8f61e700ea530d0eb7936f0f /application/modules/user/controllers/BootosController.php | |
| parent | Resource Controller fix (diff) | |
| download | pbs2-3df435742ef6d814f411ab9f4d405cc06eba1dab.tar.gz pbs2-3df435742ef6d814f411ab9f4d405cc06eba1dab.tar.xz pbs2-3df435742ef6d814f411ab9f4d405cc06eba1dab.zip | |
API + Fixes
Diffstat (limited to 'application/modules/user/controllers/BootosController.php')
| -rw-r--r-- | application/modules/user/controllers/BootosController.php | 674 |
1 files changed, 337 insertions, 337 deletions
diff --git a/application/modules/user/controllers/BootosController.php b/application/modules/user/controllers/BootosController.php index d93f0cf..6330899 100644 --- a/application/modules/user/controllers/BootosController.php +++ b/application/modules/user/controllers/BootosController.php @@ -17,17 +17,17 @@ class user_BootosController extends Zend_Controller_Action protected $membershipMapper; protected $membership; protected $page; - - public function init() - { - if (Zend_Auth::getInstance()->hasIdentity()) { + + public function init() + { + if (Zend_Auth::getInstance()->hasIdentity()) { $userIDsNamespace = Zend_Session::namespaceGet('userIDs'); if($userIDsNamespace['membershipID'] ==''){ $this->_redirect('/user/index'); } - + $this->bootosMapper = new Application_Model_BootOsMapper(); - + $this->membershipMapper = new Application_Model_MembershipMapper(); $this->membership = new Application_Model_Membership(); $this->membershipMapper->find($userIDsNamespace['membershipID'],$this->membership); @@ -36,12 +36,12 @@ class user_BootosController extends Zend_Controller_Action } else { $this->_helper->redirector('login', 'auth'); } - $this->page = $this->_request->getParam('page'); - } + $this->page = $this->_request->getParam('page'); + } - public function indexAction() - { - $result = $this->_request->getParam('addresult'); + public function indexAction() + { + $result = $this->_request->getParam('addresult'); if($result != ""){ $pbsNotifier = new Pbs_Notifier(); $this->view->notification = $pbsNotifier->notify('create',$result); @@ -56,378 +56,378 @@ class user_BootosController extends Zend_Controller_Action $pbsNotifier = new Pbs_Notifier(); $this->view->notification = $pbsNotifier->notify('modify',$result); } - $result = $this->_request->getParam('updateresult'); + $result = $this->_request->getParam('updateresult'); if($result != ""){ $pbsNotifier = new Pbs_Notifier(); $this->view->notification = $pbsNotifier->notify('update',$result); } - - $groupID = $this->membership->getGroupID(); - + + $groupID = $this->membership->getGroupID(); + //ACL Darf er BootOs sehen? - if(!Pbs_Acl::checkRight('boai') && !Pbs_Acl::checkRight('boui')) - $this->_redirect('/user/index'); - - $groupgroupsMapper = new Application_Model_GroupGroupsMapper(); - - $parents = array(); - $this->view->bootoslist = array(); - $parents = $groupgroupsMapper->getParentGroups($groupID); - - foreach($parents as $k => $parent){ - foreach($parent as $p){ - $bootos = $this->bootosMapper->findBy(array("groupID" => $p)); - foreach ($bootos as $b) - if($b->getPublic() - $k >= 0 ) - $this->view->bootoslist[] = $b; - elseif($k == 0 && $b->getPublic() == -1 && Pbs_Acl::checkRight('boc')) - $this->view->bootoslist[] = $b; - } - } - - $this->view->bootoslist = array_reverse($this->view->bootoslist); + if(!Pbs_Acl::checkRight('boai') && !Pbs_Acl::checkRight('boui')) + $this->_redirect('/user/index'); + + $groupgroupsMapper = new Application_Model_GroupGroupsMapper(); + + $parents = array(); + $this->view->bootoslist = array(); + $parents = $groupgroupsMapper->getParentGroups($groupID); + + foreach($parents as $k => $parent){ + foreach($parent as $p){ + $bootos = $this->bootosMapper->findBy(array("groupID" => $p)); + foreach ($bootos as $b) + if($b->getPublic() - $k >= 0 ) + $this->view->bootoslist[] = $b; + elseif($k == 0 && $b->getPublic() == -1 && Pbs_Acl::checkRight('boc')) + $this->view->bootoslist[] = $b; + } + } + + $this->view->bootoslist = array_reverse($this->view->bootoslist); $this->view->update = array(); - $update = $this->_request->getParam('checkupdate'); - $groupMapper = new Application_Model_GroupMapper(); - - if(count($this->view->bootoslist)>0){ + $update = $this->_request->getParam('checkupdate'); + $groupMapper = new Application_Model_GroupMapper(); + + if(count($this->view->bootoslist)>0){ foreach ($this->view->bootoslist as $bootos){ - $this->view->update[$bootos->getID()] = $update && $this->checkupdateAction($bootos); - if($bootos->getDefaultkcl() == null) - $bootos->setDefaultkcl("none (edit Bootos to set KCL)"); - $bootos->setGroupID("[".$bootos->getGroupID()."] ".$groupMapper->find($bootos->getGroupID())->getTitle()); - $bootos->setCreated(date(Zend_Registry::get('dateformat'),$bootos->getCreated())); - $bootos->setExpires(date(Zend_Registry::get('dateformat'),$bootos->getExpires())); + $this->view->update[$bootos->getID()] = $update && $this->checkupdateAction($bootos); + if($bootos->getDefaultkcl() == null) + $bootos->setDefaultkcl("none (edit Bootos to set KCL)"); + $bootos->setGroupID("[".$bootos->getGroupID()."] ".$groupMapper->find($bootos->getGroupID())->getTitle()); + $bootos->setCreated(date(Zend_Registry::get('dateformat'),$bootos->getCreated())); + $bootos->setExpires(date(Zend_Registry::get('dateformat'),$bootos->getExpires())); } } - + // Search $search = $this->_request->getParam('search'); $mySearch = new Pbs_Search(); $mySearch->setSearchTerm($search); $mySearch->setModule('bootos'); if($search != ''){ - $this->view->search = $mySearch->getSearchTerm(); - $this->view->bootoslist = $mySearch->search($this->view->bootoslist); + $this->view->search = $mySearch->getSearchTerm(); + $this->view->bootoslist = $mySearch->search($this->view->bootoslist); } $this->view->searchform = $mySearch->searchForm(); - - // Pagination - $pagination = new Pbs_Pagination(); - $pagination->setPerPage(10); + + // Pagination + $pagination = new Pbs_Pagination(); + $pagination->setPerPage(10); $pagination->setElement($this->view->bootoslist); - $pagination->setRequestPage($this->_request->getParam('page')); + $pagination->setRequestPage($this->_request->getParam('page')); $pagination->setPageUrl('/user/bootos/index'.((isset($this->view->search))?'/search/'.$this->view->search:'')); - $this->view->bootoslist = $pagination->getElements(); - + $this->view->bootoslist = $pagination->getElements(); + $this->view->pagination = $pagination->pagination(); - $this->view->page = $pagination->getRequestPage(); - - - } - public function searchAction(){ + $this->view->page = $pagination->getRequestPage(); + + + } + public function searchAction(){ $this->_redirect('/user/bootos/index/search/'.($_GET['search'])); } - public function createbootosAction() - { - - //ACL Darf er BootISOs erstellen? - if(!Pbs_Acl::checkRight('boc')) - $this->_redirect('/user/bootos/index/page/'.$this->page.'/addresult/forbidden'); - - $groupID = $this->membership->getGroupID(); - - $groupgroupsMapper = new Application_Model_GroupGroupsMapper(); - $childgroups = count($groupgroupsMapper->getChildGroups($groupID)); - - if (!isset($_POST["createbootos"])){ - $bootosForm = new user_Form_Bootos(array( + public function createbootosAction() + { + + //ACL Darf er BootISOs erstellen? + if(!Pbs_Acl::checkRight('boc')) + $this->_redirect('/user/bootos/index/page/'.$this->page.'/addresult/forbidden'); + + $groupID = $this->membership->getGroupID(); + + $groupgroupsMapper = new Application_Model_GroupGroupsMapper(); + $childgroups = count($groupgroupsMapper->getChildGroups($groupID)); + + if (!isset($_POST["createbootos"])){ + $bootosForm = new user_Form_Bootos(array( 'action' => 'createbootos', 'groupdepth' => $childgroups, 'page' => $this->page)); - } else { - - $bootosForm = new user_Form_Bootos(array( + } else { + + $bootosForm = new user_Form_Bootos(array( 'action' => 'createbootos', 'groupdepth' => $childgroups, 'page' => $this->page),$_POST); - - if ($bootosForm->isValid($_POST)) { - - $bootos = new Application_Model_BootOs($_POST); - - $bootos->setGroupID($this->membership->getGroupID()); - $bootos->setCreated(time()); - - try { - - $path_tmp = "../resources/bootos/"; - mkdir($path_tmp ,0777, true); - - $hash = md5(microtime(1)); - exec("wget -O '".$path_tmp."kernel".$hash."' ".escapeshellcmd($bootos->getPath_kernel())." 2>&1 | grep 'saved'", $status); - exec("wget -O '".$path_tmp."initramfs".$hash."' ".escapeshellcmd($bootos->getPath_init())." 2>&1 | grep 'saved'", $status2); - exec("wget -O '".$path_tmp."default".$hash."' ".escapeshellcmd($bootos->getPath_config())." 2>&1 | grep 'saved'", $status3); - - if(!array_pop($status) && $bootos->getPath_kernel() != null || !array_pop($status2) && $bootos->getPath_init() != null || !array_pop($status3) && $bootos->getPath_config() != null ){ - $this->view->bootosForm = $bootosForm; - $pbsNotifier = new Pbs_Notifier(); - echo $pbsNotifier->notify('The Resource was not found on the specified path','error'); + + if ($bootosForm->isValid($_POST)) { + + $bootos = new Application_Model_BootOs($_POST); + + $bootos->setGroupID($this->membership->getGroupID()); + $bootos->setCreated(time()); + + try { + + $path_tmp = "../resources/bootos/"; + mkdir($path_tmp ,0777, true); + + $hash = md5(microtime(1)); + exec("wget -O '".$path_tmp."kernel".$hash."' ".escapeshellcmd($bootos->getPath_kernel())." 2>&1 | grep 'saved'", $status); + exec("wget -O '".$path_tmp."initramfs".$hash."' ".escapeshellcmd($bootos->getPath_init())." 2>&1 | grep 'saved'", $status2); + exec("wget -O '".$path_tmp."default".$hash."' ".escapeshellcmd($bootos->getPath_config())." 2>&1 | grep 'saved'", $status3); + + if(!array_pop($status) && $bootos->getPath_kernel() != null || !array_pop($status2) && $bootos->getPath_init() != null || !array_pop($status3) && $bootos->getPath_config() != null ){ + $this->view->bootosForm = $bootosForm; + $pbsNotifier = new Pbs_Notifier(); + echo $pbsNotifier->notify('The Resource was not found on the specified path','error'); - return; - } - - $bootosID = $this->bootosMapper->save($bootos); - - $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); - - exec("mv ../resources/bootos/kernel$hash $kernelpath"."kernel"); - exec("mv ../resources/bootos/initramfs$hash $initpath"."initramfs"); - exec("mv ../resources/bootos/config$hash $configpath"."default.tgz"); - - }catch(Zend_Exception $e) - { - echo "Caught exception: " . get_class($e) . "<br/>"; - echo "Message: " . $e->getMessage() . "<br/>"; - $this->_redirect('/user/bootos/index/page/'.$this->page.'/addresult/error'); - //TODO Delete File & delete bootiso from DB - - } - - $this->_redirect('/user/bootos/index/page/'.$this->page.'/addresult/ok'); - } - } - - $this->view->bootosForm = $bootosForm; - } - - public function checkupdateAction($bootos) - { - - //ACL Is he allowed to update Preboots? - if(!Pbs_Acl::checkRight('bou')) - $this->_redirect('/user/preboot/index/page/'.$this->page.'/updateresult/forbidden'); - - $bootosID = $bootos->getID(); - - if(is_file("../resources/bootos/$bootosID/kernel/kernel") && is_file("../resources/bootos/$bootosID/initramfs/initramfs") && is_file("../resources/bootos/$bootosID/config/config.tgz")){ - $kernelolddate = filemtime("../resources/bootos/".$bootosID."/kernel/kernel"); - $initolddate = filemtime("../resources/bootos/".$bootosID."/initramfs/initramfs"); - $configolddate = filemtime("../resources/bootos/".$bootosID."/config/default.tgz"); - } - else - { - $pbsNotifier = new Pbs_Notifier(); - $this->view->notification = $pbsNotifier->notify('There are updates available','ok'); - return true; - } - - exec("wget --server-response --spider '".escapeshellcmd($bootos->getPath_kernel())."' 2>&1 | grep 'Last-Modified:'", $kerneldate); - exec("wget --server-response --spider '".escapeshellcmd($bootos->getPath_init())."' 2>&1 | grep 'Last-Modified:'", $initdate); - exec("wget --server-response --spider '".escapeshellcmd($bootos->getPath_config())."' 2>&1 | grep 'Last-Modified:'", $configdate); - - $kerneldate = strtotime(trim(str_replace('Last-Modified:', '', array_pop($kerneldate)))); - $initdate = strtotime(trim(str_replace('Last-Modified:', '', array_pop($initdate)))); - $configdate = strtotime(trim(str_replace('Last-Modified:', '', array_pop($configdate)))); - - //print_a($bootos->getPath_kernel(),$kerneldate,$kernelolddate,$initname,$initdate,$initolddate); - - if($kerneldate > $kernelolddate || $initdate > $initolddate || $configdate > $configolddate){ - $this->view->notification = $pbsNotifier->notify('There are updates available','ok'); - return true; - }else{ - return false; - } - - } - - public function updatebootosAction() - { - - //ACL Is he allowed to update Preboots? - if(!Pbs_Acl::checkRight('bou')) - $this->_redirect('/user/bootiso/index/page/'.$this->page.'/updateresult/forbidden'); - - $bootosID = $this->_request->getParam('bootosID'); - if (!is_numeric($bootosID)) - $this->_redirect('/user/bootos/index/page/'.$this->page.'/updateresult/forbidden'); - - $bootos = $this->bootosMapper->find($bootosID); - - if($this->membership->getGroupID() != $bootos->getGroupID()) - $this->_redirect('/user/bootos/index/page/'.$this->page.'/updateresult/forbidden'); - - $initpath = "../resources/bootos/".$bootosID."/initramfs/"; - $kernelpath = "../resources/bootos/".$bootosID."/kernel/"; - $configpath = "../resources/bootos/".$bootosID."/config/"; - $path_tmp = "../resources/bootos/"; - - $hash = md5(microtime(1)); - exec("wget -O '".$path_tmp."kernel".$hash."' ".escapeshellcmd($bootos->getPath_kernel())." 2>&1 | grep 'saved'", $status); - exec("wget -O '".$path_tmp."initramfs".$hash."' ".escapeshellcmd($bootos->getPath_init())." 2>&1 | grep 'saved'", $status2); - exec("wget -O '".$path_tmp."config".$hash."' ".escapeshellcmd($bootos->getPath_config())." 2>&1 | grep 'saved'", $status3); - + return; + } + + $bootosID = $this->bootosMapper->save($bootos); + + $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); + + exec("mv ../resources/bootos/kernel$hash $kernelpath"."kernel"); + exec("mv ../resources/bootos/initramfs$hash $initpath"."initramfs"); + exec("mv ../resources/bootos/config$hash $configpath"."default.tgz"); + + }catch(Zend_Exception $e) + { + echo "Caught exception: " . get_class($e) . "<br/>"; + echo "Message: " . $e->getMessage() . "<br/>"; + $this->_redirect('/user/bootos/index/page/'.$this->page.'/addresult/error'); + //TODO Delete File & delete bootiso from DB + + } + + $this->_redirect('/user/bootos/index/page/'.$this->page.'/addresult/ok'); + } + } + + $this->view->bootosForm = $bootosForm; + } + + public function checkupdateAction($bootos) + { + + //ACL Is he allowed to update Preboots? + if(!Pbs_Acl::checkRight('bou')) + $this->_redirect('/user/preboot/index/page/'.$this->page.'/updateresult/forbidden'); + + $bootosID = $bootos->getID(); + + if(is_file("../resources/bootos/$bootosID/kernel/kernel") && is_file("../resources/bootos/$bootosID/initramfs/initramfs") && is_file("../resources/bootos/$bootosID/config/config.tgz")){ + $kernelolddate = filemtime("../resources/bootos/".$bootosID."/kernel/kernel"); + $initolddate = filemtime("../resources/bootos/".$bootosID."/initramfs/initramfs"); + $configolddate = filemtime("../resources/bootos/".$bootosID."/config/default.tgz"); + } + else + { + $pbsNotifier = new Pbs_Notifier(); + $this->view->notification = $pbsNotifier->notify('There are updates available','ok'); + return true; + } + + exec("wget --server-response --spider '".escapeshellcmd($bootos->getPath_kernel())."' 2>&1 | grep 'Last-Modified:'", $kerneldate); + exec("wget --server-response --spider '".escapeshellcmd($bootos->getPath_init())."' 2>&1 | grep 'Last-Modified:'", $initdate); + exec("wget --server-response --spider '".escapeshellcmd($bootos->getPath_config())."' 2>&1 | grep 'Last-Modified:'", $configdate); + + $kerneldate = strtotime(trim(str_replace('Last-Modified:', '', array_pop($kerneldate)))); + $initdate = strtotime(trim(str_replace('Last-Modified:', '', array_pop($initdate)))); + $configdate = strtotime(trim(str_replace('Last-Modified:', '', array_pop($configdate)))); + + //print_a($bootos->getPath_kernel(),$kerneldate,$kernelolddate,$initname,$initdate,$initolddate); + + if($kerneldate > $kernelolddate || $initdate > $initolddate || $configdate > $configolddate){ + $this->view->notification = $pbsNotifier->notify('There are updates available','ok'); + return true; + }else{ + return false; + } + + } + + public function updatebootosAction() + { + + //ACL Is he allowed to update Preboots? + if(!Pbs_Acl::checkRight('bou')) + $this->_redirect('/user/bootiso/index/page/'.$this->page.'/updateresult/forbidden'); + + $bootosID = $this->_request->getParam('bootosID'); + if (!is_numeric($bootosID)) + $this->_redirect('/user/bootos/index/page/'.$this->page.'/updateresult/forbidden'); + + $bootos = $this->bootosMapper->find($bootosID); + + if($this->membership->getGroupID() != $bootos->getGroupID()) + $this->_redirect('/user/bootos/index/page/'.$this->page.'/updateresult/forbidden'); + + $initpath = "../resources/bootos/".$bootosID."/initramfs/"; + $kernelpath = "../resources/bootos/".$bootosID."/kernel/"; + $configpath = "../resources/bootos/".$bootosID."/config/"; + $path_tmp = "../resources/bootos/"; + + $hash = md5(microtime(1)); + exec("wget -O '".$path_tmp."kernel".$hash."' ".escapeshellcmd($bootos->getPath_kernel())." 2>&1 | grep 'saved'", $status); + exec("wget -O '".$path_tmp."initramfs".$hash."' ".escapeshellcmd($bootos->getPath_init())." 2>&1 | grep 'saved'", $status2); + exec("wget -O '".$path_tmp."config".$hash."' ".escapeshellcmd($bootos->getPath_config())." 2>&1 | grep 'saved'", $status3); + if(!array_pop($status) || !array_pop($status2) || !array_pop($status3)){ - $this->_redirect('/user/bootos/index/page/'.$this->page.'/updateresult/404'); - //TODO Delete Files in tmp + $this->_redirect('/user/bootos/index/page/'.$this->page.'/updateresult/404'); + //TODO Delete Files in tmp } - + exec("mv ../resources/bootos/kernel$hash $kernelpath"."kernel"); - exec("mv ../resources/bootos/initramfs$hash $initpath"."initramfs"); - exec("mv ../resources/bootos/config$hash $initpath"."default.tgz"); - - $this->_redirect('/user/bootos/index/page/'.$this->page.'/updateresult/ok'); - } - - public function editbootosAction() - { - - //ACL Is he allowed to edit Preboots? - if(!Pbs_Acl::checkRight('boe') && !Pbs_Acl::checkRight('boem')) - $this->_redirect('/user/bootos/index/page/'.$this->page.'/modifyresult/forbidden'); - - $bootosID = $this->_request->getParam('bootosID'); - if (!is_numeric($bootosID)) - $this->_redirect('/user/bootos/index/page/'.$this->page.'/modifyresult/forbidden'); - - $groupID = $this->membership->getGroupID(); - - $groupgroupsMapper = new Application_Model_GroupGroupsMapper(); - $childgroups = count($groupgroupsMapper->getChildGroups($groupID)); - - $bootos = new Application_Model_BootOs(); - $bootos = $this->bootosMapper->find($bootosID); - - if($this->membership->getGroupID() != $bootos->getGroupID()) - $this->_redirect('/user/bootos/index/page/'.$this->page.'/modifyresult/forbidden'); - - if (!isset($_POST["editbootos"])){ - - $bootosForm = new user_Form_Bootos(array( + exec("mv ../resources/bootos/initramfs$hash $initpath"."initramfs"); + exec("mv ../resources/bootos/config$hash $initpath"."default.tgz"); + + $this->_redirect('/user/bootos/index/page/'.$this->page.'/updateresult/ok'); + } + + public function editbootosAction() + { + + //ACL Is he allowed to edit Preboots? + if(!Pbs_Acl::checkRight('boe') && !Pbs_Acl::checkRight('boem')) + $this->_redirect('/user/bootos/index/page/'.$this->page.'/modifyresult/forbidden'); + + $bootosID = $this->_request->getParam('bootosID'); + if (!is_numeric($bootosID)) + $this->_redirect('/user/bootos/index/page/'.$this->page.'/modifyresult/forbidden'); + + $groupID = $this->membership->getGroupID(); + + $groupgroupsMapper = new Application_Model_GroupGroupsMapper(); + $childgroups = count($groupgroupsMapper->getChildGroups($groupID)); + + $bootos = new Application_Model_BootOs(); + $bootos = $this->bootosMapper->find($bootosID); + + if($this->membership->getGroupID() != $bootos->getGroupID()) + $this->_redirect('/user/bootos/index/page/'.$this->page.'/modifyresult/forbidden'); + + if (!isset($_POST["editbootos"])){ + + $bootosForm = new user_Form_Bootos(array( 'action' => 'editbootos', 'groupdepth' => $childgroups, 'page' => $this->page)); - $bootosForm->populate($bootos->toArray()); - - }else{ - $bootosForm = new user_Form_Bootos(array( + $bootosForm->populate($bootos->toArray()); + + }else{ + $bootosForm = new user_Form_Bootos(array( 'action' => 'editbootos', 'groupdepth' => $childgroups, 'page' => $this->page),$_POST); - - if ($bootosForm->isValid($_POST)) { - - $bootosold = $bootos; - - $bootos = new Application_Model_BootOs($_POST); - $bootos->setGroupID($this->membership->getGroupID()); - $bootos->setCreated(time()); - $bootos->setID($bootosID); - - if( $bootos->getSource() != $bootosold->getSource() || - $bootos->getDistro() != $bootosold->getDistro() || - $bootos->getDistroversion() != $bootosold->getDistroversion() || - $bootos->getShare() != $bootosold->getShare() || - $bootos->getShortname() != $bootosold->getShortname() || - $bootos->getDefaultkcl() != $bootosold->getDefaultkcl() || - $bootos->getExpires() != $bootosold->getExpires() || - $bootos->getPublic() != $bootosold->getPublic() ){ - //ACL Is he allowed to edit this? - if(!Pbs_Acl::checkRight('boe')) - $this->_redirect('/user/bootos/index/page/'.$this->page.'/modifyresult/forbidden'); - } - - if($bootos->getPath_config() != $bootosold->getPath_config() || $bootos->getPath_kernel() != $bootosold->getPath_kernel() || $bootos->getPath_init() != $bootosold->getPath_init()){ - //ACL Is he allowed to edit the Kernel/Init Path? - if(!Pbs_Acl::checkRight('boe')) - $this->_redirect('/user/bootos/index/page/'.$this->page.'/modifyresult/forbidden'); - - $path_tmp = "../resources/bootos/"; - - $hash = md5(microtime(1)); - exec("wget -O '".$path_tmp."kernel".$hash."' ".escapeshellcmd($bootos->getPath_kernel())." 2>&1 | grep 'saved'", $status); - exec("wget -O '".$path_tmp."initramfs".$hash."' ".escapeshellcmd($bootos->getPath_init())." 2>&1 | grep 'saved'", $status2); - exec("wget -O '".$path_tmp."config".$hash."' ".escapeshellcmd($bootos->getPath_config())." 2>&1 | grep 'saved'", $status3); - - if(!array_pop($status) && $bootos->getPath_kernel() != null || !array_pop($status2) && $bootos->getPath_init() != null || !array_pop($status3) && $bootos->getPath_config() != null ){ - $this->view->bootosForm = $bootosForm; - $pbsNotifier = new Pbs_Notifier(); + + if ($bootosForm->isValid($_POST)) { + + $bootosold = $bootos; + + $bootos = new Application_Model_BootOs($_POST); + $bootos->setGroupID($this->membership->getGroupID()); + $bootos->setCreated(time()); + $bootos->setID($bootosID); + + if( $bootos->getSource() != $bootosold->getSource() || + $bootos->getDistro() != $bootosold->getDistro() || + $bootos->getDistroversion() != $bootosold->getDistroversion() || + $bootos->getShare() != $bootosold->getShare() || + $bootos->getShortname() != $bootosold->getShortname() || + $bootos->getDefaultkcl() != $bootosold->getDefaultkcl() || + $bootos->getExpires() != $bootosold->getExpires() || + $bootos->getPublic() != $bootosold->getPublic() ){ + //ACL Is he allowed to edit this? + if(!Pbs_Acl::checkRight('boe')) + $this->_redirect('/user/bootos/index/page/'.$this->page.'/modifyresult/forbidden'); + } + + if($bootos->getPath_config() != $bootosold->getPath_config() || $bootos->getPath_kernel() != $bootosold->getPath_kernel() || $bootos->getPath_init() != $bootosold->getPath_init()){ + //ACL Is he allowed to edit the Kernel/Init Path? + if(!Pbs_Acl::checkRight('boe')) + $this->_redirect('/user/bootos/index/page/'.$this->page.'/modifyresult/forbidden'); + + $path_tmp = "../resources/bootos/"; + + $hash = md5(microtime(1)); + exec("wget -O '".$path_tmp."kernel".$hash."' ".escapeshellcmd($bootos->getPath_kernel())." 2>&1 | grep 'saved'", $status); + exec("wget -O '".$path_tmp."initramfs".$hash."' ".escapeshellcmd($bootos->getPath_init())." 2>&1 | grep 'saved'", $status2); + exec("wget -O '".$path_tmp."config".$hash."' ".escapeshellcmd($bootos->getPath_config())." 2>&1 | grep 'saved'", $status3); + + if(!array_pop($status) && $bootos->getPath_kernel() != null || !array_pop($status2) && $bootos->getPath_init() != null || !array_pop($status3) && $bootos->getPath_config() != null ){ + $this->view->bootosForm = $bootosForm; + $pbsNotifier = new Pbs_Notifier(); echo $pbsNotifier->notify('The Resource was not found on the specified path','error'); - return; - } - - $initpath = "../resources/bootos/".$bootosID."/initramfs/"; - $kernelpath = "../resources/bootos/".$bootosID."/kernel/"; + return; + } + + $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); + + exec("mv ../resources/bootos/kernel$hash $kernelpath"."kernel"); + exec("mv ../resources/bootos/initramfs$hash $initpath"."initramfs"); + exec("mv ../resources/bootos/config$hash $initpath"."default.tgz"); + } - mkdir($initpath ,0777, true); - mkdir($kernelpath ,0777, true); - mkdir($configpath ,0777, true); - - exec("mv ../resources/bootos/kernel$hash $kernelpath"."kernel"); - exec("mv ../resources/bootos/initramfs$hash $initpath"."initramfs"); - exec("mv ../resources/bootos/config$hash $initpath"."default.tgz"); - } - - try { - $this->bootosMapper->save($bootos); - - }catch(Zend_Exception $e) - { - echo "Caught exception: " . get_class($e) . "<br/>"; - echo "Message: " . $e->getMessage() . "<br/>"; - $this->_redirect('/user/bootos/index/page/'.$this->page.'/modifyresult/error'); - //TODO Delete Folder + Preboot - } - + try { + $this->bootosMapper->save($bootos); + + }catch(Zend_Exception $e) + { + echo "Caught exception: " . get_class($e) . "<br/>"; + echo "Message: " . $e->getMessage() . "<br/>"; + $this->_redirect('/user/bootos/index/page/'.$this->page.'/modifyresult/error'); + //TODO Delete Folder + Preboot + } + $this->_redirect('/user/bootos/index/page/'.$this->page.'/modifyresult/ok'); - } - - } - - $this->view->bootosForm = $bootosForm; - - } - - public function deletebootosAction() - { - //ACL Is he allowed to delete Bootos? - if(!Pbs_Acl::checkRight('bod')) - $this->_redirect('/user/bootos/index/page/'.$this->page.'/deleteresult/forbidden'); - - try{ - $bootosID = $this->_request->getParam('bootosID'); - if (!is_numeric($bootosID)) - $this->_redirect('/user/bootos/index/page/'.$this->page.'/deleteresult/forbidden'); - - $bootos = new Application_Model_BootOs(); - $this->bootosMapper->find($bootosID, $bootos); - - if($this->membership->getGroupID() != $bootos->getGroupID()) - $this->_redirect('/user/bootos/index/page/'.$this->page.'/deleteresult/forbidden'); - - $this->bootosMapper->delete($bootos); - exec("rm -r ../resources/bootos/".$bootosID); - - }catch(Zend_Exception $e){ - echo "Caught exception: " . get_class($e) . "<br/>"; - echo "Message: " . $e->getMessage() . "<br/>"; - $this->_redirect('/user/bootos/index/page/'.$this->page.'/deleteresult/error'); - } - $this->_redirect('/user/bootos/index/page/'.$this->page.'/deleteresult/ok'); - } - - + } + + } + + $this->view->bootosForm = $bootosForm; + + } + + public function deletebootosAction() + { + //ACL Is he allowed to delete Bootos? + if(!Pbs_Acl::checkRight('bod')) + $this->_redirect('/user/bootos/index/page/'.$this->page.'/deleteresult/forbidden'); + + try{ + $bootosID = $this->_request->getParam('bootosID'); + if (!is_numeric($bootosID)) + $this->_redirect('/user/bootos/index/page/'.$this->page.'/deleteresult/forbidden'); + + $bootos = new Application_Model_BootOs(); + $this->bootosMapper->find($bootosID, $bootos); + + if($this->membership->getGroupID() != $bootos->getGroupID()) + $this->_redirect('/user/bootos/index/page/'.$this->page.'/deleteresult/forbidden'); + + $this->bootosMapper->delete($bootos); + exec("rm -r ../resources/bootos/".$bootosID); + + }catch(Zend_Exception $e){ + echo "Caught exception: " . get_class($e) . "<br/>"; + echo "Message: " . $e->getMessage() . "<br/>"; + $this->_redirect('/user/bootos/index/page/'.$this->page.'/deleteresult/error'); + } + $this->_redirect('/user/bootos/index/page/'.$this->page.'/deleteresult/ok'); + } + + } |
