diff options
Diffstat (limited to 'application/modules/user/controllers/BootmenuController.php')
| -rw-r--r-- | application/modules/user/controllers/BootmenuController.php | 1178 |
1 files changed, 582 insertions, 596 deletions
diff --git a/application/modules/user/controllers/BootmenuController.php b/application/modules/user/controllers/BootmenuController.php index 3d6fbf1..33201ec 100644 --- a/application/modules/user/controllers/BootmenuController.php +++ b/application/modules/user/controllers/BootmenuController.php @@ -1,601 +1,587 @@ -<?php +<? php /* * Copyright (c) 2011 - OpenSLX GmbH, RZ Uni Freiburg - * This program is free software distributed under the GPL version 2. - * See http://gpl.openslx.org/ - * - * If you have any feedback please consult http://feedback.openslx.org/ and - * send your suggestions, praise, or complaints to feedback@openslx.org - * - * General information about OpenSLX can be found at http://openslx.org/ - */ - -class user_BootmenuController extends Zend_Controller_Action -{ - - protected $bootmenuMapper; - protected $bootmenuentryMapper; - protected $membershipMapper; - protected $membership; - protected $page; - protected $type; - - public function init() - { - if (Zend_Auth::getInstance()->hasIdentity()) { - $userIDsNamespace = Zend_Session::namespaceGet('userIDs'); - if($userIDsNamespace['membershipID'] ==''){ - $this->_redirect('/user/index'); - } - - $this->bootmenuMapper = new Application_Model_BootMenuMapper(); - $this->bootmenuentryMapper = new Application_Model_BootMenuEntriesMapper(); - - - $this->membershipMapper = new Application_Model_MembershipMapper(); - $this->membership = new Application_Model_Membership(); - $this->membershipMapper->find($userIDsNamespace['membershipID'],$this->membership); - - $this->db = Zend_Db_Table::getDefaultAdapter(); - - $this->type = $this->_request->getParam('type'); - } else { - $this->_helper->redirector('login', 'auth'); - } - $this->page = $this->_request->getParam('page'); - } - - public function indexAction() - { - - $result = $this->_request->getParam('addresult'); - if($result != ""){ - $pbsNotifier = new Pbs_Notifier(); - $this->view->notification = $pbsNotifier->notify('create',$result); - } - $result = $this->_request->getParam('deleteresult'); - if($result != ""){ - $pbsNotifier = new Pbs_Notifier(); - $this->view->notification = $pbsNotifier->notify('delete',$result); - } - $result = $this->_request->getParam('modifyresult'); - if($result != ""){ - $pbsNotifier = new Pbs_Notifier(); - $this->view->notification = $pbsNotifier->notify('modify',$result); - } - $result = $this->_request->getParam('json'); - if($result != ""){ - $pbsNotifier = new Pbs_Notifier(); - $this->view->notification = $pbsNotifier->notify('json',$result); - } - - - //ACL Darf er Bootmenus sehen? - if(!Pbs_Acl::checkRight('booai') && !Pbs_Acl::checkRight('booui')) - $this->_redirect('/user/index'); - - $this->bootMenumapper = new Application_Model_BootMenuMapper(); - $this->bootmenuentriesMapper = new Application_Model_BootMenuEntriesMapper(); - $bootosMapper = new Application_Model_BootOsMapper(); - $configMapper = new Application_Model_ConfigMapper(); - - $bootmenuentries = array(); - if($this->type =='group' && Pbs_Acl::checkRight('booai')){ - $this->view->type = 'group'; - $bootmenu = $this->bootmenuMapper->findBy(array('groupID' => $this->membership->getGroupID())); - foreach ($bootmenu as $bm){ - $bm->setCreated(date(Zend_Registry::get('dateformat'),$bm->getCreated())); - $bootmenuID = $bm->getID(); - $bootmenuentries[$bootmenuID] = $this->bootmenuentriesMapper->findBy(array('bootmenuID' => $bootmenuID)); - foreach ($bootmenuentries[$bootmenuID] as $bootmenuentry){ - $kcl = $bootosMapper->find($bootmenuentry->getBootosID())->getDefaultkcl(); - if($bootmenuentry->getKcl() && $kcl != null) - $bootmenuentry->setKcl($kcl); - else - $bootmenuentry->setKcl("deactivated (edit Bootmenuentry to activate)"); - if($bootmenuentry->getKclappend() == null) - $bootmenuentry->setKclappend("none (edit Bootmenuentry to set KCL-Append)"); - $bootmenuentry->setBootosID("[".$bootmenuentry->getBootosID()."] ".$bootosMapper->find($bootmenuentry->getBootosID())->getTitle()); - if($bootmenuentry->getConfigID() != null) - $bootmenuentry->setConfigID("[".$bootmenuentry->getConfigID()."] ".$configMapper->find($bootmenuentry->getConfigID())->getTitle()); - } - } - }else{ - $this->view->type = 'own'; - $bootmenu = $this->bootmenuMapper->findBy(array('membershipID' => $this->membership->getID())); - if($bootmenu != null){ - $bootmenu[0]->setCreated(date(Zend_Registry::get('dateformat'),$bootmenu[0]->getCreated())); - $bootmenuID = $bootmenu[0]->getID(); - $bootmenuentries[$bootmenuID] = $this->bootmenuentriesMapper->findBy(array('bootmenuID' => $bootmenuID)); - foreach ($bootmenuentries[$bootmenuID] as $bootmenuentry){ - $kcl = $bootosMapper->find($bootmenuentry->getBootosID())->getDefaultkcl(); - if($bootmenuentry->getKcl() && $kcl != null) - $bootmenuentry->setKcl($kcl); - else - $bootmenuentry->setKcl("deactivated (edit Bootmenuentry to activate)"); - if($bootmenuentry->getKclappend() == null) - $bootmenuentry->setKclappend("none"); - $bootmenuentry->setBootosID("[".$bootmenuentry->getBootosID()."] ".$bootosMapper->find($bootmenuentry->getBootosID())->getTitle()); - if($bootmenuentry->getConfigID() != null) - $bootmenuentry->setConfigID("[".$bootmenuentry->getConfigID()."] ".$configMapper->find($bootmenuentry->getConfigID())->gettitle()); - } - } - } - - // Search - $search = $this->_request->getParam('search'); - $mySearch = new Pbs_Search(); - $mySearch->setSearchTerm($search); - $mySearch->setType($this->type); - $mySearch->setModule('bootmenu'); - if($search != ''){ - $this->view->search = $mySearch->getSearchTerm(); - $bootmenu = $mySearch->search($bootmenu); - } - $this->view->searchform = $mySearch->searchForm(); - - // Pagination - $pagination = new Pbs_Pagination(); - $pagination->setPerPage(10); - $pagination->setElement($bootmenu); - $pagination->setRequestPage($this->_request->getParam('page')); - $pagination->setPageUrl('/user/bootmenu/index/type/'.$this->type.((isset($this->view->search))?'/search/'.$this->view->search:'')); - $bootmenu = $pagination->getElements(); - - $this->view->pagination = $pagination->pagination(); - $this->view->page = $pagination->getRequestPage(); - - $this->view->bootmenulist = $bootmenu; - $this->view->bootmenuentrylist = $bootmenuentries; - - } - - public function searchAction(){ - $this->_redirect('/user/bootmenu/index/type/'.$this->type.'/search/'.($_GET['search'])); - } - - - public function createbootmenuAction() - { - //ACL Darf er BootMenus erstellen? - if(!Pbs_Acl::checkRight('booc')) - $this->_redirect('/user/bootmenu/index/type/'.$this->type.'/page/'.$this->page.'/addresult/forbidden'); - - if (!isset($_POST["createbootmenu"])){ - $bootmenuForm = new user_Form_Bootmenu(array('action' => 'createbootmenu','page' => $this->page, 'type'=>$this->type)); - } else { - - $bootmenuForm = new user_Form_Bootmenu(array('action' => 'createbootmenu','page' => $this->page, 'type'=>$this->type),$_POST); - - if ($bootmenuForm->isValid($_POST)) { - - $bootmenu = new Application_Model_BootMenu($_POST); - $bootmenu->setCreated(time()); - $bootmenu->setGroupID($this->membership->getGroupID()); - $bootmenu->setDefaultbootmenu('0'); - - try{ - $this->bootmenuMapper->save($bootmenu); - }catch(Zend_Exception $e){ - echo "Caught exception: " . get_class($e) . "<br/>"; - echo "Message: " . $e->getMessage() . "<br/>"; - $this->_redirect('/user/bootmenu/index/type/'.$this->type.'/page/'.$this->page.'/addresult/error'); - } - $this->_redirect('/user/bootmenu/index/type/'.$this->type.'/page/'.$this->page.'/addresult/ok'); - } - } - - $this->view->bootmenuForm = $bootmenuForm; - } - - public function editbootmenuAction() - { - - //ACL Is he allowed to edit BootMenus? - if(!Pbs_Acl::checkRight('booe')) - $this->_redirect('/user/bootmenu/index/type/'.$this->type.'/page/'.$this->page.'/modifyresult/forbidden'); - - $bootmenuID = $this->_request->getParam('bootmenuID'); - if (!is_numeric($bootmenuID)) - $this->_redirect('/user/bootmenu/index/type/'.$this->type.'/page/'.$this->page.'/modifyresult/forbidden'); - - $bootmenu = new Application_Model_BootMenu(); - $this->bootmenuMapper->find($bootmenuID, $bootmenu); - - if($this->membership->getGroupID() != $bootmenu->getGroupID()) - $this->_redirect('/user/bootmenu/index/type/'.$this->type.'/page/'.$this->page.'/modifyresult/forbidden'); - - if (!isset($_POST["editbootmenu"])){ - - $bootmenuForm = new user_Form_Bootmenu(array('action' => 'editbootmenu','page' => $this->page, 'type'=>$this->type)); - $bootmenuForm->populate($bootmenu->toArray()); - - }else{ - $bootmenuForm = new user_Form_Bootmenu(array('action' => 'editbootmenu','page' => $this->page, 'type'=>$this->type),$_POST); - - if ($bootmenuForm->isValid($_POST)) { - - $bootmenuold = $bootmenu; - - $bootmenu = new Application_Model_BootMenu($_POST); - $bootmenu->setGroupID($this->membership->getGroupID()); - $bootmenu->setCreated(time()); - $bootmenu->setID($bootmenuID); - $bootmenu->setDefaultbootmenu($bootmenuold->getDefaultbootmenu()); - print_a($bootmenu); - try { - $this->bootmenuMapper->save($bootmenu); - }catch(Zend_Exception $e) - { - echo "Caught exception: " . get_class($e) . "<br/>"; - echo "Message: " . $e->getMessage() . "<br/>"; - $this->_redirect('/user/bootmenu/index/type/'.$this->type.'/page/'.$this->page.'/modifyresult/error'); - } - - $this->_redirect('/user/bootmenu/index/type/'.$this->type.'/page/'.$this->page.'/modifyresult/ok'); - } - - } - - $this->view->bootmenuForm = $bootmenuForm; - } - - public function deletebootmenuAction() - { - - //ACL Is he allowed to delete Bootmenu? - if(!Pbs_Acl::checkRight('bood')) - $this->_redirect('/user/bootmenu/index/type/'.$this->type.'/page/'.$this->page.'/deleteresult/forbidden'); - - try{ - $bootmenuID = $this->_request->getParam('bootmenuID'); - if (!is_numeric($bootmenuID)) - $this->_redirect('/user/bootmenu/index/type/'.$this->type.'/page/'.$this->page.'/deleteresult/forbidden'); - - $bootmenu = new Application_Model_BootMenu(); - $this->bootmenuMapper->find($bootmenuID, $bootmenu); - - if($this->membership->getGroupID() != $bootmenu->getGroupID()) - $this->_redirect('/user/bootmenu/index/type/'.$this->type.'/page/'.$this->page.'/deleteresult/forbidden'); - - $this->bootmenuMapper->delete($bootmenu); - - }catch(Zend_Exception $e){ - echo "Caught exception: " . get_class($e) . "<br/>"; - echo "Message: " . $e->getMessage() . "<br/>"; - $this->_redirect('/user/bootmenu/index/type/'.$this->type.'/page/'.$this->page.'/deleteresult/error'); - } - $this->_redirect('/user/bootmenu/index/type/'.$this->type.'/page/'.$this->page.'/deleteresult/ok'); - } - - public function defaultbootmenuAction() - { - - //ACL Is he allowed to set Bootmenu as Default? - if(!Pbs_Acl::checkRight('boodbm')) - $this->_redirect('/user/bootmenu/index/type/'.$this->type.'/page/'.$this->page.'/modifyresult/forbidden'); - - try{ - $bootmenuID = $this->_request->getParam('bootmenuID'); - if (!is_numeric($bootmenuID)) - $this->_redirect('/user/bootmenu/index/type/'.$this->type.'/page/'.$this->page.'/modifyresult/error'); - - $bootmenu = new Application_Model_BootMenu(); - - $this->bootmenuMapper->find($bootmenuID, $bootmenu); - - if($bootmenu->getDefaultbootmenu() == false){ - - list($defaultbootmenu) = $this->bootmenuMapper->findBy(array('defaultbootmenu' => '1')); - if($defaultbootmenu != null){ - $defaultbootmenu->setDefaultbootmenu(false); - $this->bootmenuMapper->save($defaultbootmenu); - } - $bootmenu->setDefaultbootmenu(true); - $this->bootmenuMapper->save($bootmenu); - } - }catch(Zend_Exception $e){ - echo "Caught exception: " . get_class($e) . "<br/>"; - echo "Message: " . $e->getMessage() . "<br/>"; - $this->_redirect('/user/bootmenu/index/type/'.$this->type.'/page/'.$this->page.'/modifyresult/error'); - } - $this->_redirect('/user/bootmenu/index/type/'.$this->type.'/page/'.$this->page.'/modifyresult/ok'); - - } - - public function addbootmenuentryAction() - { - - //ACL Darf er BootMenuEntries erstellen? - if(!Pbs_Acl::checkRight('booae') && !Pbs_Acl::checkRight('booaeo')) - $this->_redirect('/user/bootmenu/index/type/'.$this->type.'/page/'.$this->page.'/addresult/forbidden'); - - $bootmenuID = $this->_request->getParam('bootmenuID'); - $maxorder = $this->_request->getParam('maxorder'); - - if (!is_numeric($bootmenuID) || !is_numeric($maxorder)) - $this->_redirect('/user/bootmenu/index/type/'.$this->type.'/page/'.$this->page.'/modifyresult/error'); - - $bootosMapper = new Application_Model_BootOsMapper(); - $configMapper = new Application_Model_ConfigMapper(); - $groupMapper = new Application_Model_GroupMapper(); - - $groupID = $this->membership->getGroupID(); - $groupgroupsMapper = new Application_Model_GroupGroupsMapper(); - - $parents = array(); - $bootoslist = array(); - $parents = $groupgroupsMapper->getParentGroups($groupID); - - $configlist = array('Preset' => array(), 'Custom' => Array()); - - foreach($parents as $k => $parent){ - foreach($parent as $p){ - $bootos = $bootosMapper->findBy(array("groupID" => $p)); - foreach ($bootos as $b) - if($b->getPublic() - $k >= 0 ){ - $grouptitle = $groupMapper->find($p)->getTitle(); - $bootoslist[$b->getID()] = $b; - $bootosanzeige[$grouptitle][$b->getID()] = $b->getTitle(); - $configlist['Preset'][$b->getID()] = $configMapper->findBy(array('bootosID' => $b->getID(), 'visible' => '1')); - $configlist['Custom'][$b->getID()] = $configMapper->findBy(array('membershipID' => $this->membership->getID(), 'bootosID' => $b->getID(), 'visible' => '1')); - } - } - } - - - - - $bootmenu = new Application_Model_BootMenu(); - $this->bootmenuMapper->find($bootmenuID, $bootmenu); - - if($bootmenu->getMembershipID() != null){ - if($this->membership->getID() != $bootmenu->getMembershipID() || !Pbs_Acl::checkRight('booaeo')) - $this->_redirect('/user/bootmenu/index/type/'.$this->type.'/page/'.$this->page.'/addresult/forbidden'); - }else{ - if($this->membership->getGroupID() != $bootmenu->getGroupID() || !Pbs_Acl::checkRight('booae')) - $this->_redirect('/user/bootmenu/index/type/'.$this->type.'/page/'.$this->page.'/addresult/forbidden'); - } - - if (!isset($_POST["addbootmenuentry"])){ - - if(!isset($_POST['kcl'])) - $_POST['kcl'] = true; - - $bootmenuentryForm = new user_Form_BootmenuEntries(array( - 'bootoslist'=> $bootoslist, - 'bootosanzeige' => $bootosanzeige, - 'maxorder'=> $maxorder, - 'configlist'=> $configlist, - 'page' => $this->page, - 'type' => $this->type, - 'action' => 'addbootmenuentry', - )); - - $bootmenuentryForm->populate(array('order' => $maxorder)); - unset($_POST['defaultkcl']); - unset($_POST['configID']); - $bootmenuentryForm->populate($_POST); - - } else { - - $bootmenuentryForm = new user_Form_BootmenuEntries(array( - 'bootoslist'=>$bootoslist, - 'bootosanzeige' => $bootosanzeige, - 'maxorder'=> $maxorder, - 'configlist'=>$configlist, - 'page' => $this->page, - 'type' => $this->type, - 'action' => 'addbootmenuentry', - ),$_POST); - - if ($bootmenuentryForm->isValid($_POST)) { - - $bootmenuentry = new Application_Model_BootMenuEntries($_POST); - $bootmenuentry->setBootmenuID($bootmenuID); - - try { - if($bootmenuentry->getOrder() < $maxorder){ - $bootmenuentry->setOrder($bootmenuentry->getOrder()); - $this->bootmenuentryMapper->order($bootmenuentry); - } - - //print_a($bootmenuentry); - - $this->bootmenuentryMapper->save($bootmenuentry); - }catch(Zend_Exception $e) - { - echo "Caught exception: " . get_class($e) . "<br/>"; - echo "Message: " . $e->getMessage() . "<br/>"; - $this->_redirect('/user/bootmenu/index/type/'.$this->type.'/page/'.$this->page.'/addresult/error'); - - } - $this->_redirect('/user/bootmenu/index/type/'.$this->type.'/page/'.$this->page.'/addresult/ok'); - } - } - - $this->view->bootmenuentryForm = $bootmenuentryForm; - - } - - public function editbootmenuentryAction() - { - //ACL Is he allowed to edit BootMenus? - if(!Pbs_Acl::checkRight('booee') && !Pbs_Acl::checkRight('booeem') && !Pbs_Acl::checkRight('booeeo')) - $this->_redirect('/user/bootmenu/index/type/'.$this->type.'/page/'.$this->page.'/modifyresult/forbidden'); - - $bootmenuentryID = $this->_request->getParam('bootmenuentryID'); - $maxorder = $this->_request->getParam('maxorder'); - $oldorder = $this->_request->getParam('oldorder'); - if (!is_numeric($bootmenuentryID) || !is_numeric($maxorder) || !is_numeric($oldorder)) - $this->_redirect('/user/bootmenu/index/type/'.$this->type.'/page/'.$this->page.'/modifyresult/error'); - - $bootosMapper = new Application_Model_BootOsMapper(); - $configMapper = new Application_Model_ConfigMapper(); - - $groupID = $this->membership->getGroupID(); - $groupgroupsMapper = new Application_Model_GroupGroupsMapper(); - $groupMapper = new Application_Model_GroupMapper(); - - $parents = array(); - $bootoslist = array(); - $parents = $groupgroupsMapper->getParentGroups($groupID); - - foreach($parents as $k => $parent){ - foreach($parent as $p){ - $bootos = $bootosMapper->findBy(array("groupID" => $p)); - foreach ($bootos as $b) - if($b->getPublic() - $k >= 0 ){ - $grouptitle = $groupMapper->find($p)->getTitle(); - $bootoslist[$b->getID()] = $b; - $bootosanzeige[$grouptitle][$b->getID()] = $b->getTitle(); - $configlist['Preset'][$b->getID()] = $configMapper->findBy(array('bootosID' => $b->getID(), 'visible' => '1')); - $configlist['Custom'][$b->getID()] = $configMapper->findBy(array('membershipID' => $this->membership->getID(), 'bootosID' => $b->getID(), 'visible' => '1')); - - } - } - } - - $bootmenuentry = new Application_Model_BootMenuEntries(); - $bootmenu = new Application_Model_BootMenu(); - $this->bootmenuentryMapper->find($bootmenuentryID, $bootmenuentry); - $this->bootmenuMapper->find($bootmenuentry->getBootmenuID(), $bootmenu); - - if($bootmenu->getMembershipID() != null){ - if($this->membership->getID() != $bootmenu->getMembershipID() || !Pbs_Acl::checkRight('booeeo')) - $this->_redirect('/user/bootmenu/index/type/'.$this->type.'/page/'.$this->page.'/modifyresult/forbidden'); - }else{ - if($this->membership->getGroupID() != $bootmenu->getGroupID() || (!Pbs_Acl::checkRight('booee') && !Pbs_Acl::checkRight('booeem'))) - $this->_redirect('/user/bootmenu/index/type/'.$this->type.'/page/'.$this->page.'/modifyresult/forbidden'); - } - - $neworder = $this->_request->getParam('neworder'); - if($neworder != ''){ - if($neworder == 'undefined') - $neworder = $maxorder-1; - - $_POST = array( - 'title' => $bootmenuentry->getTitle(), - 'bootosID' => $bootmenuentry->getBootosID(), - 'kcl' => $bootmenuentry->getKcl(), - 'kclappend' => $bootmenuentry->getKclappend(), - 'configID' => $bootmenuentry->getConfigID(), - 'order' => $neworder, - 'editbootmenuentry' => 'Edit Bootmenuentry', - ); - } - - if (!isset($_POST["editbootmenuentry"])){ - if(!isset($_POST['bootosID'])) - $_POST['bootosID'] = $bootmenuentry->getBootosID(); - if(!isset($_POST['kcl'])) - $_POST['kcl'] = $bootmenuentry->getKcl(); - - $bootmenuentryForm = new user_Form_BootmenuEntries(array( - 'bootoslist'=> $bootoslist, - 'bootosanzeige' => $bootosanzeige, - 'maxorder'=> $maxorder-1, - 'configlist'=> $configlist, - 'page' => $this->page, - 'type' => $this->type, - 'action' => 'editbootmenuentry', - )); - - if(!isset($_POST['configID'])){ - $bootmenuentryForm->populate($bootmenuentry->toArray()); - } - else{ - unset($_POST['defaultkcl']); - unset($_POST['configID']); - $bootmenuentryForm->populate($_POST); - } - - }else{ - $bootmenuentryForm = new user_Form_BootmenuEntries(array( - 'bootoslist'=> $bootoslist, - 'bootosanzeige' => $bootosanzeige, - 'maxorder'=> $maxorder-1, - 'configlist'=> $configlist, - 'page' => $this->page, - 'type' => $this->type, - 'action' => 'editbootmenuentry'),$_POST); - - if ($bootmenuentryForm->isValid($_POST)) { - - $bootmenuentryold= $bootmenuentry; - - $bootmenuentry = new Application_Model_BootMenuEntries($_POST); - $bootmenuentry->setBootmenuID($bootmenu->getID()); - $bootmenuentry->setID($bootmenuentryID); - - if( $bootmenuentryold->getBootosID() != $bootmenuentry->getBootosID() || - $bootmenuentryold->getConfigID() != $bootmenuentry->getConfigID() || - $bootmenuentryold->getKcl() != $bootmenuentry->getKcl() || - $bootmenuentryold->getKclappend() != $bootmenuentry->getKclappend()){ - //ACL Is he allowed to edit this? - if(!Pbs_Acl::checkRight('booee') && !Pbs_Acl::checkRight('booeeo')) - $this->_redirect('/user/bootmenu/index/type/'.$this->type.'/page/'.$this->page.'/modifyresult/forbidden'); - } - - try { - if($bootmenuentry->getOrder() < $oldorder) - $this->bootmenuentryMapper->orderbefore($bootmenuentry, $oldorder); - else - $this->bootmenuentryMapper->orderafter($bootmenuentry, $oldorder); - - $this->bootmenuentryMapper->save($bootmenuentry); - - }catch(Zend_Exception $e) - { - echo "Caught exception: " . get_class($e) . "<br/>"; - echo "Message: " . $e->getMessage() . "<br/>"; - $this->_redirect('/user/bootmenu/index/type/'.$this->type.'/page/'.$this->page.'/modifyresult/error'); - - } - - $this->_redirect('/user/bootmenu/index/type/'.$this->type.'/page/'.$this->page.'/modifyresult/ok'); - } - - } - - $this->view->bootmenuentryForm = $bootmenuentryForm; - - } - - public function removebootmenuentryAction() - { - //ACL Is he allowed to delete Bootos? - if(!Pbs_Acl::checkRight('boode') && !Pbs_Acl::checkRight('boodeo')) - $this->_redirect('/user/bootmenu/index/type/'.$this->type.'/page/'.$this->page.'/deleteresult/forbidden'); - - try{ - $bootmenuentryID = $this->_request->getParam('bootmenuentryID'); - if (!is_numeric($bootmenuentryID)) - $this->_redirect('/user/bootmenu/index/type/'.$this->type.'/page/'.$this->page.'/deleteresult/forbidden'); - - $bootmenuentry = new Application_Model_BootMenuEntries(); - $bootmenu = new Application_Model_BootMenu(); - $this->bootmenuentryMapper->find($bootmenuentryID, $bootmenuentry); - $this->bootmenuMapper->find($bootmenuentry->getBootmenuID(), $bootmenu); - - if($bootmenu->getMembershipID() != null){ - if($this->membership->getID() != $bootmenu->getMembershipID() || !Pbs_Acl::checkRight('boodeo')) - $this->_redirect('/user/bootmenu/index/type/'.$this->type.'/page/'.$this->page.'/deleteresult/forbidden'); - }else{ - if($this->membership->getGroupID() != $bootmenu->getGroupID() || !Pbs_Acl::checkRight('boode')) - $this->_redirect('/user/bootmenu/index/type/'.$this->type.'/page/'.$this->page.'/deleteresult/forbidden'); - } - - $this->bootmenuentryMapper->delete($bootmenuentry); - $this->bootmenuentryMapper->orderremove($bootmenuentry); - - }catch(Zend_Exception $e){ - echo "Caught exception: " . get_class($e) . "<br/>"; - echo "Message: " . $e->getMessage() . "<br/>"; - $this->_redirect('/user/bootmenu/index/type/'.$this->type.'/page/'.$this->page.'/deleteresult/error'); - } - $this->_redirect('/user/bootmenu/index/type/'.$this->type.'/page/'.$this->page.'/deleteresult/ok'); - } +* This program is free software distributed under the GPL version 2. +* See http://gpl.openslx.org/ +* +* If you have any feedback please consult http://feedback.openslx.org/ and +* send your suggestions, praise, or complaints to feedback@openslx.org +* +* General information about OpenSLX can be found at http://openslx.org/ +*/ + +class user_BootmenuController extends Zend_Controller_Action { + + protected $bootmenuMapper; + protected $bootmenuentryMapper; + protected $membershipMapper; + protected $membership; + protected $page; + protected $type; + + public function init() { + if (Zend_Auth::getInstance()->hasIdentity()) { + $userIDsNamespace = Zend_Session::namespaceGet('userIDs'); + if($userIDsNamespace['membershipID'] == '') { + $this->_redirect('/user/index'); + } + + $this->bootmenuMapper = new Application_Model_BootMenuMapper(); + $this->bootmenuentryMapper = new Application_Model_BootMenuEntriesMapper(); + + + $this->membershipMapper = new Application_Model_MembershipMapper(); + $this->membership = new Application_Model_Membership(); + $this->membershipMapper->find($userIDsNamespace['membershipID'], $this->membership); + + $this->db = Zend_Db_Table::getDefaultAdapter(); + + $this->type = $this->_request->getParam('type'); + } else { + $this->_helper->redirector('login', 'auth'); + } + $this->page = $this->_request->getParam('page'); + } + + public function indexAction() { + + $result = $this->_request->getParam('addresult'); + if($result != "") { + $pbsNotifier = new Pbs_Notifier(); + $this->view->notification = $pbsNotifier->notify('create', $result); + } + $result = $this->_request->getParam('deleteresult'); + if($result != "") { + $pbsNotifier = new Pbs_Notifier(); + $this->view->notification = $pbsNotifier->notify('delete', $result); + } + $result = $this->_request->getParam('modifyresult'); + if($result != "") { + $pbsNotifier = new Pbs_Notifier(); + $this->view->notification = $pbsNotifier->notify('modify', $result); + } + $result = $this->_request->getParam('json'); + if($result != "") { + $pbsNotifier = new Pbs_Notifier(); + $this->view->notification = $pbsNotifier->notify('json', $result); + } + + + //ACL Darf er Bootmenus sehen? + if(!Pbs_Acl::checkRight('booai') && !Pbs_Acl::checkRight('booui')) + { $this->_redirect('/user/index'); } + + $this->bootMenumapper = new Application_Model_BootMenuMapper(); + $this->bootmenuentriesMapper = new Application_Model_BootMenuEntriesMapper(); + $bootosMapper = new Application_Model_BootOsMapper(); + $configMapper = new Application_Model_ConfigMapper(); + + $bootmenuentries = array(); + if($this->type == 'group' && Pbs_Acl::checkRight('booai')) { + $this->view->type = 'group'; + $bootmenu = $this->bootmenuMapper->findBy(array('groupID' => $this->membership->getGroupID())); + foreach ($bootmenu as $bm) { + $bm->setCreated(date(Zend_Registry::get('dateformat'), $bm->getCreated())); + $bootmenuID = $bm->getID(); + $bootmenuentries[$bootmenuID] = $this->bootmenuentriesMapper->findBy(array('bootmenuID' => $bootmenuID)); + foreach ($bootmenuentries[$bootmenuID] as $bootmenuentry) { + $kcl = $bootosMapper->find($bootmenuentry->getBootosID())->getDefaultkcl(); + if($bootmenuentry->getKcl() && $kcl != null) + { $bootmenuentry->setKcl($kcl); } + else + { $bootmenuentry->setKcl("deactivated (edit Bootmenuentry to activate)"); } + if($bootmenuentry->getKclappend() == null) + { $bootmenuentry->setKclappend("none (edit Bootmenuentry to set KCL-Append)"); } + $bootmenuentry->setBootosID("[".$bootmenuentry->getBootosID()."] ".$bootosMapper->find($bootmenuentry->getBootosID())->getTitle()); + if($bootmenuentry->getConfigID() != null) + { $bootmenuentry->setConfigID("[".$bootmenuentry->getConfigID()."] ".$configMapper->find($bootmenuentry->getConfigID())->getTitle()); } + } + } + } else { + $this->view->type = 'own'; + $bootmenu = $this->bootmenuMapper->findBy(array('membershipID' => $this->membership->getID())); + if($bootmenu != null) { + $bootmenu[0]->setCreated(date(Zend_Registry::get('dateformat'), $bootmenu[0]->getCreated())); + $bootmenuID = $bootmenu[0]->getID(); + $bootmenuentries[$bootmenuID] = $this->bootmenuentriesMapper->findBy(array('bootmenuID' => $bootmenuID)); + foreach ($bootmenuentries[$bootmenuID] as $bootmenuentry) { + $kcl = $bootosMapper->find($bootmenuentry->getBootosID())->getDefaultkcl(); + if($bootmenuentry->getKcl() && $kcl != null) + { $bootmenuentry->setKcl($kcl); } + else + { $bootmenuentry->setKcl("deactivated (edit Bootmenuentry to activate)"); } + if($bootmenuentry->getKclappend() == null) + { $bootmenuentry->setKclappend("none"); } + $bootmenuentry->setBootosID("[".$bootmenuentry->getBootosID()."] ".$bootosMapper->find($bootmenuentry->getBootosID())->getTitle()); + if($bootmenuentry->getConfigID() != null) + { $bootmenuentry->setConfigID("[".$bootmenuentry->getConfigID()."] ".$configMapper->find($bootmenuentry->getConfigID())->gettitle()); } + } + } + } + + // Search + $search = $this->_request->getParam('search'); + $mySearch = new Pbs_Search(); + $mySearch->setSearchTerm($search); + $mySearch->setType($this->type); + $mySearch->setModule('bootmenu'); + if($search != '') { + $this->view->search = $mySearch->getSearchTerm(); + $bootmenu = $mySearch->search($bootmenu); + } + $this->view->searchform = $mySearch->searchForm(); + + // Pagination + $pagination = new Pbs_Pagination(); + $pagination->setPerPage(10); + $pagination->setElement($bootmenu); + $pagination->setRequestPage($this->_request->getParam('page')); + $pagination->setPageUrl('/user/bootmenu/index/type/'.$this->type.((isset($this->view->search)) ? '/search/'.$this->view->search : '')); + $bootmenu = $pagination->getElements(); + + $this->view->pagination = $pagination->pagination(); + $this->view->page = $pagination->getRequestPage(); + + $this->view->bootmenulist = $bootmenu; + $this->view->bootmenuentrylist = $bootmenuentries; + + } + + public function searchAction() { + $this->_redirect('/user/bootmenu/index/type/'.$this->type.'/search/'.($_GET['search'])); + } + + + public function createbootmenuAction() { + //ACL Darf er BootMenus erstellen? + if(!Pbs_Acl::checkRight('booc')) + { $this->_redirect('/user/bootmenu/index/type/'.$this->type.'/page/'.$this->page.'/addresult/forbidden'); } + + if (!isset($_POST["createbootmenu"])) { + $bootmenuForm = new user_Form_Bootmenu(array('action' => 'createbootmenu', 'page' => $this->page, 'type' => $this->type)); + } else { + + $bootmenuForm = new user_Form_Bootmenu(array('action' => 'createbootmenu', 'page' => $this->page, 'type' => $this->type), $_POST); + + if ($bootmenuForm->isValid($_POST)) { + + $bootmenu = new Application_Model_BootMenu($_POST); + $bootmenu->setCreated(time()); + $bootmenu->setGroupID($this->membership->getGroupID()); + $bootmenu->setDefaultbootmenu('0'); + + try { + $this->bootmenuMapper->save($bootmenu); + } catch(Zend_Exception $e) { + echo "Caught exception: " . get_class($e) . "<br/>"; + echo "Message: " . $e->getMessage() . "<br/>"; + $this->_redirect('/user/bootmenu/index/type/'.$this->type.'/page/'.$this->page.'/addresult/error'); + } + $this->_redirect('/user/bootmenu/index/type/'.$this->type.'/page/'.$this->page.'/addresult/ok'); + } + } + + $this->view->bootmenuForm = $bootmenuForm; + } + + public function editbootmenuAction() { + + //ACL Is he allowed to edit BootMenus? + if(!Pbs_Acl::checkRight('booe')) + { $this->_redirect('/user/bootmenu/index/type/'.$this->type.'/page/'.$this->page.'/modifyresult/forbidden'); } + + $bootmenuID = $this->_request->getParam('bootmenuID'); + if (!is_numeric($bootmenuID)) + { $this->_redirect('/user/bootmenu/index/type/'.$this->type.'/page/'.$this->page.'/modifyresult/forbidden'); } + + $bootmenu = new Application_Model_BootMenu(); + $this->bootmenuMapper->find($bootmenuID, $bootmenu); + + if($this->membership->getGroupID() != $bootmenu->getGroupID()) + { $this->_redirect('/user/bootmenu/index/type/'.$this->type.'/page/'.$this->page.'/modifyresult/forbidden'); } + + if (!isset($_POST["editbootmenu"])) { + + $bootmenuForm = new user_Form_Bootmenu(array('action' => 'editbootmenu', 'page' => $this->page, 'type' => $this->type)); + $bootmenuForm->populate($bootmenu->toArray()); + + } else { + $bootmenuForm = new user_Form_Bootmenu(array('action' => 'editbootmenu', 'page' => $this->page, 'type' => $this->type), $_POST); + + if ($bootmenuForm->isValid($_POST)) { + + $bootmenuold = $bootmenu; + + $bootmenu = new Application_Model_BootMenu($_POST); + $bootmenu->setGroupID($this->membership->getGroupID()); + $bootmenu->setCreated(time()); + $bootmenu->setID($bootmenuID); + $bootmenu->setDefaultbootmenu($bootmenuold->getDefaultbootmenu()); + print_a($bootmenu); + try { + $this->bootmenuMapper->save($bootmenu); + } catch(Zend_Exception $e) { + echo "Caught exception: " . get_class($e) . "<br/>"; + echo "Message: " . $e->getMessage() . "<br/>"; + $this->_redirect('/user/bootmenu/index/type/'.$this->type.'/page/'.$this->page.'/modifyresult/error'); + } + + $this->_redirect('/user/bootmenu/index/type/'.$this->type.'/page/'.$this->page.'/modifyresult/ok'); + } + + } + + $this->view->bootmenuForm = $bootmenuForm; + } + + public function deletebootmenuAction() { + + //ACL Is he allowed to delete Bootmenu? + if(!Pbs_Acl::checkRight('bood')) + { $this->_redirect('/user/bootmenu/index/type/'.$this->type.'/page/'.$this->page.'/deleteresult/forbidden'); } + + try { + $bootmenuID = $this->_request->getParam('bootmenuID'); + if (!is_numeric($bootmenuID)) + { $this->_redirect('/user/bootmenu/index/type/'.$this->type.'/page/'.$this->page.'/deleteresult/forbidden'); } + + $bootmenu = new Application_Model_BootMenu(); + $this->bootmenuMapper->find($bootmenuID, $bootmenu); + + if($this->membership->getGroupID() != $bootmenu->getGroupID()) + { $this->_redirect('/user/bootmenu/index/type/'.$this->type.'/page/'.$this->page.'/deleteresult/forbidden'); } + + $this->bootmenuMapper->delete($bootmenu); + + } catch(Zend_Exception $e) { + echo "Caught exception: " . get_class($e) . "<br/>"; + echo "Message: " . $e->getMessage() . "<br/>"; + $this->_redirect('/user/bootmenu/index/type/'.$this->type.'/page/'.$this->page.'/deleteresult/error'); + } + $this->_redirect('/user/bootmenu/index/type/'.$this->type.'/page/'.$this->page.'/deleteresult/ok'); + } + + public function defaultbootmenuAction() { + + //ACL Is he allowed to set Bootmenu as Default? + if(!Pbs_Acl::checkRight('boodbm')) + { $this->_redirect('/user/bootmenu/index/type/'.$this->type.'/page/'.$this->page.'/modifyresult/forbidden'); } + + try { + $bootmenuID = $this->_request->getParam('bootmenuID'); + if (!is_numeric($bootmenuID)) + { $this->_redirect('/user/bootmenu/index/type/'.$this->type.'/page/'.$this->page.'/modifyresult/error'); } + + $bootmenu = new Application_Model_BootMenu(); + + $this->bootmenuMapper->find($bootmenuID, $bootmenu); + + if($bootmenu->getDefaultbootmenu() == false) { + + list($defaultbootmenu) = $this->bootmenuMapper->findBy(array('defaultbootmenu' => '1')); + if($defaultbootmenu != null) { + $defaultbootmenu->setDefaultbootmenu(false); + $this->bootmenuMapper->save($defaultbootmenu); + } + $bootmenu->setDefaultbootmenu(true); + $this->bootmenuMapper->save($bootmenu); + } + } catch(Zend_Exception $e) { + echo "Caught exception: " . get_class($e) . "<br/>"; + echo "Message: " . $e->getMessage() . "<br/>"; + $this->_redirect('/user/bootmenu/index/type/'.$this->type.'/page/'.$this->page.'/modifyresult/error'); + } + $this->_redirect('/user/bootmenu/index/type/'.$this->type.'/page/'.$this->page.'/modifyresult/ok'); + + } + + public function addbootmenuentryAction() { + + //ACL Darf er BootMenuEntries erstellen? + if(!Pbs_Acl::checkRight('booae') && !Pbs_Acl::checkRight('booaeo')) + { $this->_redirect('/user/bootmenu/index/type/'.$this->type.'/page/'.$this->page.'/addresult/forbidden'); } + + $bootmenuID = $this->_request->getParam('bootmenuID'); + $maxorder = $this->_request->getParam('maxorder'); + + if (!is_numeric($bootmenuID) || !is_numeric($maxorder)) + { $this->_redirect('/user/bootmenu/index/type/'.$this->type.'/page/'.$this->page.'/modifyresult/error'); } + + $bootosMapper = new Application_Model_BootOsMapper(); + $configMapper = new Application_Model_ConfigMapper(); + $groupMapper = new Application_Model_GroupMapper(); + + $groupID = $this->membership->getGroupID(); + $groupgroupsMapper = new Application_Model_GroupGroupsMapper(); + + $parents = array(); + $bootoslist = array(); + $parents = $groupgroupsMapper->getParentGroups($groupID); + + $configlist = array('Preset' => array(), 'Custom' => Array()); + + foreach($parents as $k => $parent) { + foreach($parent as $p) { + $bootos = $bootosMapper->findBy(array("groupID" => $p)); + foreach ($bootos as $b) + if($b->getPublic() - $k >= 0 ) { + $grouptitle = $groupMapper->find($p)->getTitle(); + $bootoslist[$b->getID()] = $b; + $bootosanzeige[$grouptitle][$b->getID()] = $b->getTitle(); + $configlist['Preset'][$b->getID()] = $configMapper->findBy(array('bootosID' => $b->getID(), 'visible' => '1')); + $configlist['Custom'][$b->getID()] = $configMapper->findBy(array('membershipID' => $this->membership->getID(), 'bootosID' => $b->getID(), 'visible' => '1')); + } + } + } + + + + + $bootmenu = new Application_Model_BootMenu(); + $this->bootmenuMapper->find($bootmenuID, $bootmenu); + + if($bootmenu->getMembershipID() != null) { + if($this->membership->getID() != $bootmenu->getMembershipID() || !Pbs_Acl::checkRight('booaeo')) + { $this->_redirect('/user/bootmenu/index/type/'.$this->type.'/page/'.$this->page.'/addresult/forbidden'); } + } else { + if($this->membership->getGroupID() != $bootmenu->getGroupID() || !Pbs_Acl::checkRight('booae')) + { $this->_redirect('/user/bootmenu/index/type/'.$this->type.'/page/'.$this->page.'/addresult/forbidden'); } + } + + if (!isset($_POST["addbootmenuentry"])) { + + if(!isset($_POST['kcl'])) + { $_POST['kcl'] = true; } + + $bootmenuentryForm = new user_Form_BootmenuEntries(array( + 'bootoslist' => $bootoslist, + 'bootosanzeige' => $bootosanzeige, + 'maxorder' => $maxorder, + 'configlist' => $configlist, + 'page' => $this->page, + 'type' => $this->type, + 'action' => 'addbootmenuentry', + )); + + $bootmenuentryForm->populate(array('order' => $maxorder)); + unset($_POST['defaultkcl']); + unset($_POST['configID']); + $bootmenuentryForm->populate($_POST); + + } else { + + $bootmenuentryForm = new user_Form_BootmenuEntries(array( + 'bootoslist' => $bootoslist, + 'bootosanzeige' => $bootosanzeige, + 'maxorder' => $maxorder, + 'configlist' => $configlist, + 'page' => $this->page, + 'type' => $this->type, + 'action' => 'addbootmenuentry', + ), $_POST); + + if ($bootmenuentryForm->isValid($_POST)) { + + $bootmenuentry = new Application_Model_BootMenuEntries($_POST); + $bootmenuentry->setBootmenuID($bootmenuID); + + try { + if($bootmenuentry->getOrder() < $maxorder) { + $bootmenuentry->setOrder($bootmenuentry->getOrder()); + $this->bootmenuentryMapper->order($bootmenuentry); + } + + //print_a($bootmenuentry); + + $this->bootmenuentryMapper->save($bootmenuentry); + } catch(Zend_Exception $e) { + echo "Caught exception: " . get_class($e) . "<br/>"; + echo "Message: " . $e->getMessage() . "<br/>"; + $this->_redirect('/user/bootmenu/index/type/'.$this->type.'/page/'.$this->page.'/addresult/error'); + + } + $this->_redirect('/user/bootmenu/index/type/'.$this->type.'/page/'.$this->page.'/addresult/ok'); + } + } + + $this->view->bootmenuentryForm = $bootmenuentryForm; + + } + + public function editbootmenuentryAction() { + //ACL Is he allowed to edit BootMenus? + if(!Pbs_Acl::checkRight('booee') && !Pbs_Acl::checkRight('booeem') && !Pbs_Acl::checkRight('booeeo')) + { $this->_redirect('/user/bootmenu/index/type/'.$this->type.'/page/'.$this->page.'/modifyresult/forbidden'); } + + $bootmenuentryID = $this->_request->getParam('bootmenuentryID'); + $maxorder = $this->_request->getParam('maxorder'); + $oldorder = $this->_request->getParam('oldorder'); + if (!is_numeric($bootmenuentryID) || !is_numeric($maxorder) || !is_numeric($oldorder)) + { $this->_redirect('/user/bootmenu/index/type/'.$this->type.'/page/'.$this->page.'/modifyresult/error'); } + + $bootosMapper = new Application_Model_BootOsMapper(); + $configMapper = new Application_Model_ConfigMapper(); + + $groupID = $this->membership->getGroupID(); + $groupgroupsMapper = new Application_Model_GroupGroupsMapper(); + $groupMapper = new Application_Model_GroupMapper(); + + $parents = array(); + $bootoslist = array(); + $parents = $groupgroupsMapper->getParentGroups($groupID); + + foreach($parents as $k => $parent) { + foreach($parent as $p) { + $bootos = $bootosMapper->findBy(array("groupID" => $p)); + foreach ($bootos as $b) + if($b->getPublic() - $k >= 0 ) { + $grouptitle = $groupMapper->find($p)->getTitle(); + $bootoslist[$b->getID()] = $b; + $bootosanzeige[$grouptitle][$b->getID()] = $b->getTitle(); + $configlist['Preset'][$b->getID()] = $configMapper->findBy(array('bootosID' => $b->getID(), 'visible' => '1')); + $configlist['Custom'][$b->getID()] = $configMapper->findBy(array('membershipID' => $this->membership->getID(), 'bootosID' => $b->getID(), 'visible' => '1')); + + } + } + } + + $bootmenuentry = new Application_Model_BootMenuEntries(); + $bootmenu = new Application_Model_BootMenu(); + $this->bootmenuentryMapper->find($bootmenuentryID, $bootmenuentry); + $this->bootmenuMapper->find($bootmenuentry->getBootmenuID(), $bootmenu); + + if($bootmenu->getMembershipID() != null) { + if($this->membership->getID() != $bootmenu->getMembershipID() || !Pbs_Acl::checkRight('booeeo')) + { $this->_redirect('/user/bootmenu/index/type/'.$this->type.'/page/'.$this->page.'/modifyresult/forbidden'); } + } else { + if($this->membership->getGroupID() != $bootmenu->getGroupID() || (!Pbs_Acl::checkRight('booee') && !Pbs_Acl::checkRight('booeem'))) + { $this->_redirect('/user/bootmenu/index/type/'.$this->type.'/page/'.$this->page.'/modifyresult/forbidden'); } + } + + $neworder = $this->_request->getParam('neworder'); + if($neworder != '') { + if($neworder == 'undefined') + { $neworder = $maxorder - 1; } + + $_POST = array( + 'title' => $bootmenuentry->getTitle(), + 'bootosID' => $bootmenuentry->getBootosID(), + 'kcl' => $bootmenuentry->getKcl(), + 'kclappend' => $bootmenuentry->getKclappend(), + 'configID' => $bootmenuentry->getConfigID(), + 'order' => $neworder, + 'editbootmenuentry' => 'Edit Bootmenuentry', + ); + } + + if (!isset($_POST["editbootmenuentry"])) { + if(!isset($_POST['bootosID'])) + { $_POST['bootosID'] = $bootmenuentry->getBootosID(); } + if(!isset($_POST['kcl'])) + { $_POST['kcl'] = $bootmenuentry->getKcl(); } + + $bootmenuentryForm = new user_Form_BootmenuEntries(array( + 'bootoslist' => $bootoslist, + 'bootosanzeige' => $bootosanzeige, + 'maxorder' => $maxorder - 1, + 'configlist' => $configlist, + 'page' => $this->page, + 'type' => $this->type, + 'action' => 'editbootmenuentry', + )); + + if(!isset($_POST['configID'])) { + $bootmenuentryForm->populate($bootmenuentry->toArray()); + } else { + unset($_POST['defaultkcl']); + unset($_POST['configID']); + $bootmenuentryForm->populate($_POST); + } + + } else { + $bootmenuentryForm = new user_Form_BootmenuEntries(array( + 'bootoslist' => $bootoslist, + 'bootosanzeige' => $bootosanzeige, + 'maxorder' => $maxorder - 1, + 'configlist' => $configlist, + 'page' => $this->page, + 'type' => $this->type, + 'action' => 'editbootmenuentry'), $_POST); + + if ($bootmenuentryForm->isValid($_POST)) { + + $bootmenuentryold = $bootmenuentry; + + $bootmenuentry = new Application_Model_BootMenuEntries($_POST); + $bootmenuentry->setBootmenuID($bootmenu->getID()); + $bootmenuentry->setID($bootmenuentryID); + + if( $bootmenuentryold->getBootosID() != $bootmenuentry->getBootosID() || + $bootmenuentryold->getConfigID() != $bootmenuentry->getConfigID() || + $bootmenuentryold->getKcl() != $bootmenuentry->getKcl() || + $bootmenuentryold->getKclappend() != $bootmenuentry->getKclappend()) { + //ACL Is he allowed to edit this? + if(!Pbs_Acl::checkRight('booee') && !Pbs_Acl::checkRight('booeeo')) + { $this->_redirect('/user/bootmenu/index/type/'.$this->type.'/page/'.$this->page.'/modifyresult/forbidden'); } + } + + try { + if($bootmenuentry->getOrder() < $oldorder) + { $this->bootmenuentryMapper->orderbefore($bootmenuentry, $oldorder); } + else + { $this->bootmenuentryMapper->orderafter($bootmenuentry, $oldorder); } + + $this->bootmenuentryMapper->save($bootmenuentry); + + } catch(Zend_Exception $e) { + echo "Caught exception: " . get_class($e) . "<br/>"; + echo "Message: " . $e->getMessage() . "<br/>"; + $this->_redirect('/user/bootmenu/index/type/'.$this->type.'/page/'.$this->page.'/modifyresult/error'); + + } + + $this->_redirect('/user/bootmenu/index/type/'.$this->type.'/page/'.$this->page.'/modifyresult/ok'); + } + + } + + $this->view->bootmenuentryForm = $bootmenuentryForm; + + } + + public function removebootmenuentryAction() { + //ACL Is he allowed to delete Bootos? + if(!Pbs_Acl::checkRight('boode') && !Pbs_Acl::checkRight('boodeo')) + { $this->_redirect('/user/bootmenu/index/type/'.$this->type.'/page/'.$this->page.'/deleteresult/forbidden'); } + + try { + $bootmenuentryID = $this->_request->getParam('bootmenuentryID'); + if (!is_numeric($bootmenuentryID)) + { $this->_redirect('/user/bootmenu/index/type/'.$this->type.'/page/'.$this->page.'/deleteresult/forbidden'); } + + $bootmenuentry = new Application_Model_BootMenuEntries(); + $bootmenu = new Application_Model_BootMenu(); + $this->bootmenuentryMapper->find($bootmenuentryID, $bootmenuentry); + $this->bootmenuMapper->find($bootmenuentry->getBootmenuID(), $bootmenu); + + if($bootmenu->getMembershipID() != null) { + if($this->membership->getID() != $bootmenu->getMembershipID() || !Pbs_Acl::checkRight('boodeo')) + { $this->_redirect('/user/bootmenu/index/type/'.$this->type.'/page/'.$this->page.'/deleteresult/forbidden'); } + } else { + if($this->membership->getGroupID() != $bootmenu->getGroupID() || !Pbs_Acl::checkRight('boode')) + { $this->_redirect('/user/bootmenu/index/type/'.$this->type.'/page/'.$this->page.'/deleteresult/forbidden'); } + } + + $this->bootmenuentryMapper->delete($bootmenuentry); + $this->bootmenuentryMapper->orderremove($bootmenuentry); + + } catch(Zend_Exception $e) { + echo "Caught exception: " . get_class($e) . "<br/>"; + echo "Message: " . $e->getMessage() . "<br/>"; + $this->_redirect('/user/bootmenu/index/type/'.$this->type.'/page/'.$this->page.'/deleteresult/error'); + } + $this->_redirect('/user/bootmenu/index/type/'.$this->type.'/page/'.$this->page.'/deleteresult/ok'); + } } |
