From fca04a6dab252eb9e8c0a92ce3b7e14b32e68d1e Mon Sep 17 00:00:00 2001 From: Sebastian Schmelzer Date: Wed, 11 Jan 2012 14:36:35 +0100 Subject: format source files --- .../modules/user/controllers/ConfigController.php | 1064 ++++++++++---------- 1 file changed, 527 insertions(+), 537 deletions(-) (limited to 'application/modules/user/controllers/ConfigController.php') diff --git a/application/modules/user/controllers/ConfigController.php b/application/modules/user/controllers/ConfigController.php index b271974..d38c981 100644 --- a/application/modules/user/controllers/ConfigController.php +++ b/application/modules/user/controllers/ConfigController.php @@ -1,542 +1,532 @@ -hasIdentity()) { - $userIDsNamespace = Zend_Session::namespaceGet('userIDs'); - if($userIDsNamespace['membershipID'] ==''){ - $this->_redirect('/user/index'); - } - - $this->configMapper = new Application_Model_ConfigMapper(); - $this->bootosuserMapper = new Application_Model_BootOsUserMapper(); - $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); - } - - $groupID = $this->membership->getGroupID(); - - //ACL Darf er Configs sehen? - if(!Pbs_Acl::checkRight('csai') && !Pbs_Acl::checkRight('csui')) - $this->_redirect('/user/index'); - - $this->configMapper = new Application_Model_ConfigMapper(); - $this->bootosMapper = new Application_Model_BootOsMapper(); - $this->bootmenuMapper = new Application_Model_BootMenuMapper(); - $this->bootmenuentriesMapper = new Application_Model_BootMenuEntriesMapper(); - $groupMapper = new Application_Model_GroupMapper(); - $this->view->bootoslist = array(); - $this->view->configlist = array(); - - if($this->type =='own' && Pbs_Acl::checkRight('csui')){ - $this->view->type = 'own'; - $bootmenu = $this->bootmenuMapper->findBy(array('membershipID' => $this->membership->getID())); - if($bootmenu != null){ - $bootmenuID = $bootmenu[0]->getID(); - $bootmenuentries = $this->bootmenuentriesMapper->findBy(array('bootmenuID' => $bootmenuID)); - foreach ($bootmenuentries as $bootmenuentry){ - $bootos = $this->bootosMapper->find($bootmenuentry->getBootosID()); - $bootos->setGroupID("[".$bootos->getGroupID()."] ".$groupMapper->find($bootos->getGroupID())->getTitle()); - $this->view->bootoslist[$bootos->getID()] = $bootos; - $this->view->configlist[$bootos->getID()] = $this->configMapper->findBy(array('membershipID' => $this->membership->getID(), 'bootosID' => $bootos->getID())); - foreach ($this->view->configlist[$bootos->getID()] as $config){ - $config->setCreated(date(Zend_Registry::get('dateformat'),$config->getCreated())); - } - } - } - }else{ - $groupgroupsMapper = new Application_Model_GroupGroupsMapper(); - - $parents = array(); - $groupconfs = array(); - $ownerconfs = 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; - if(Pbs_Acl::checkRight('cc')){ - $ownerconfs = $this->configMapper->findBy(array('groupID' => $b->getGroupID(), 'membershipID' => null, 'bootosID' => $b->getID())); - if($groupID != $b->getGroupID()) - $groupconfs = $this->configMapper->findBy(array('groupID' => $groupID, 'membershipID' => null, 'bootosID' => $b->getID())); - $this->view->configlist[$b->getID()] = array_merge($ownerconfs,$groupconfs); - }else{ - $ownerconfs = $this->configMapper->findBy(array('groupID' => $b->getGroupID(), 'membershipID' => null, 'bootosID' => $b->getID(), 'visible' => '1')); - if($groupID != $b->getGroupID()) - $groupconfs = $this->configMapper->findBy(array('groupID' => $groupID, 'membershipID' => null, 'bootosID' => $b->getID(), 'visible' => '1')); - $this->view->configlist[$b->getID()] = array_merge($ownerconfs,$groupconfs); - - } - foreach ($this->view->configlist[$b->getID()] as $config){ - $config->setCreated(date(Zend_Registry::get('dateformat'),$config->getCreated())); - } - } - elseif($k == 0 && $b->getPublic() == -1 && Pbs_Acl::checkRight('boc')){ - $this->view->bootoslist[] = $b; - if(Pbs_Acl::checkRight('cc')){ - $ownerconfs = $this->configMapper->findBy(array('groupID' => $b->getGroupID(), 'membershipID' => null, 'bootosID' => $b->getID())); - if($groupID != $b->getGroupID()) - $groupconfs = $this->configMapper->findBy(array('groupID' => $groupID, 'membershipID' => null, 'bootosID' => $b->getID())); - $this->view->configlist[$b->getID()] = array_merge($ownerconfs,$groupconfs); - }else{ - $ownerconfs = $this->configMapper->findBy(array('groupID' => $b->getGroupID(), 'membershipID' => null, 'bootosID' => $b->getID(), 'visible' => '1')); - if($groupID != $b->getGroupID()) - $groupconfs = $this->configMapper->findBy(array('groupID' => $groupID, 'membershipID' => null, 'bootosID' => $b->getID(), 'visible' => '1')); - $this->view->configlist[$b->getID()] = array_merge($ownerconfs,$groupconfs); - } - foreach ($this->view->configlist[$b->getID()] as $config){ - $config->setCreated(date(Zend_Registry::get('dateformat'),$config->getCreated())); - } - } - } - } - - $this->view->bootoslist = array_reverse($this->view->bootoslist); - - if(count($this->view->bootoslist)>0){ - foreach ($this->view->bootoslist as $bootos){ - $bootos->setGroupID("[".$bootos->getGroupID()."] ".$groupMapper->find($bootos->getGroupID())->getTitle()); - } - } - $this->view->type = 'group'; - //$this->view->configlist = $this->configMapper->findBy(array('groupID' => $this->membership->getGroupID())); - } - - //print_a($this->view->configlist); - - // Search - $search = $this->_request->getParam('search'); - $mySearch = new Pbs_Search(); - $mySearch->setSearchTerm($search); - $mySearch->setType($this->type); - $mySearch->setModule('config'); - if($search != ''){ - $this->view->search = $mySearch->getSearchTerm(); - $this->view->configlist = $mySearch->search($this->view->configlist - ); - } - $this->view->searchform = $mySearch->searchForm(); - - // Pagination - $pagination = new Pbs_Pagination(); - $pagination->setPerPage(10); - $pagination->setElement($this->view->bootoslist); - $pagination->setRequestPage($this->_request->getParam('page')); - $pagination->setPageUrl('/user/config/index/type/'.$this->type.((isset($this->view->search))?'/search/'.$this->view->search:'')); - $this->view->bootoslist = $pagination->getElements(); - - $this->view->pagination = $pagination->pagination(); - $this->view->page = $pagination->getRequestPage(); - - } - - public function searchAction(){ - $this->_redirect('/user/config/index/type/'.$this->type.'/search/'.($_GET['search'])); - } - - public function createconfigAction() - { - //ACL Darf er Configs erstellen? - if(!Pbs_Acl::checkRight('cc') && !Pbs_Acl::checkRight('cco')) - $this->_redirect('/user/config/index/type/'.$this->type.'/page/'.$this->page.'/addresult/forbidden'); - - $bootosID = $this->_request->getParam('bootosID'); - - if (!is_numeric($bootosID)) - $this->_redirect('/user/config/index/type/'.$this->type.'/page/'.$this->page.'/addresult/error'); - - if (!isset($_POST["createconfig"])){ - $configForm = new user_Form_Config(array('action' => 'createconfig','page'=>$this->page, 'type'=>$this->type)); - } else { - $configForm = new user_Form_Config(array('action' => 'createconfig','page'=>$this->page, 'type'=>$this->type),$_POST); - - if ($configForm->isValid($_POST)) { - - $config = new Application_Model_Config($_POST); - $config->setCreated(time()); - $config->setBootosID($bootosID); - - if(Pbs_Acl::checkRight('cc') && $this->_request->getParam('type') == 'group'){ - $config->setGroupID($this->membership->getGroupID()); - } - elseif(Pbs_Acl::checkRight('cco') && $this->_request->getParam('type') == 'own'){ - $config->setVisible('1'); - $config->setMembershipID($this->membership->getID()); - } - else - $this->_redirect('/user/config/index/type/'.$this->type.'/page/'.$this->page.'/addresult/error'); - - try { - $this->configMapper->save($config); - }catch(Zend_Exception $e) - { - echo "Caught exception: " . get_class($e) . "
"; - echo "Message: " . $e->getMessage() . "
"; - $this->_redirect('/user/config/index/type/'.$this->type.'/page/'.$this->page.'/addresult/error'); - } - $this->_redirect('/user/config/index/type/'.$this->type.'/page/'.$this->page.'/addresult/ok'); - } - } - - $this->view->configForm = $configForm; - } - - public function showconfigAction(){ - - $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); - } - - $configID = $this->_request->getParam('configID'); - if (!is_numeric($configID)) - $this->_redirect('/user/config/index/type/'.$this->type.'/page/'.$this->page.'/modifyresult/error'); - - $groupID = $this->membership->getGroupID(); - - $config = new Application_Model_Config(); - $this->configMapper->find($configID, $config); - - $hometypeMapper = new Application_Model_HomeTypeMapper(); - - $this->view->configID = $configID; - $this->view->type = $this->_request->getParam('type'); - $this->view->config = $this->configMapper->find($configID)->getTitle(); - $this->view->userlist = $this->bootosuserMapper->findBy(array('configID' => $configID)); - foreach($this->view->userlist as $user){ - $user->setHometypeID("[".$user->getHometypeID()."] ".$hometypeMapper->find($user->getHometypeID())->getName()); - } - - } - - public function adduserAction(){ - $configID = $this->_request->getParam('configID'); - if (!is_numeric($configID)) - $this->_redirect('/user/config/showconfig/type/'.$this->type.'/configID/'.$configID.'/addresult/error'); - //ACL Darf er User adden? - if(!Pbs_Acl::checkRight('cc') && !Pbs_Acl::checkRight('cco')) - $this->_redirect('/user/config/showconfig/type/'.$this->type.'/configID/'.$configID.'/addresult/forbidden'); - - $hometypeMapper = new Application_Model_HomeTypeMapper(); - $hometype = $hometypeMapper->fetchAll(); - - if (!isset($_POST["addbootosuser"])){ - $bootosuserForm = new user_Form_BootosUser(array('action' => 'addbootosuser', 'type'=>$this->type, 'configID' => $configID, 'hometype' => $hometype),$_POST); - } else { - $bootosuserForm = new user_Form_BootosUser(array('action' => 'addbootosuser', 'type'=>$this->type, 'configID' => $configID, 'hometype' => $hometype),$_POST); - - if ($bootosuserForm->isValid($_POST)) { - - $bootosuser = new Application_Model_BootOsUser($_POST); - $bootosuser->setConfigID($configID); - $bootosuser->setHomepath(str_replace("%login-name%", $bootosuser->getLogin(), $bootosuser->getHomepath())); - if($bootosuser->getPassword() != '%password%') - $bootosuser->setPassword(crypt($bootosuser->getPassword(), '$6$'.randomString(8).'$')); - - try { - $this->bootosuserMapper->save($bootosuser); - }catch(Zend_Exception $e) - { - echo "Caught exception: " . get_class($e) . "
"; - echo "Message: " . $e->getMessage() . "
"; - $this->_redirect('/user/config/showconfig/type/'.$this->type.'/configID/'.$configID.'/addresult/error'); - } - $this->_redirect('/user/config/showconfig/type/'.$this->type.'/configID/'.$configID.'/addresult/ok'); - } - } - - $this->view->bootosuserForm = $bootosuserForm; - } - - - public function edituserAction(){ - //ACL Darf er Configs editieren? - if(!Pbs_Acl::checkRight('ce') && !Pbs_Acl::checkRight('cem') && !Pbs_Acl::checkRight('ceo')) - $this->_redirect('/user/config/showconfig/type/'.$this->type.'/configID/'.$configID.'/modifyresult/forbidden'); - - $configID = $this->_request->getParam('configID'); - $bootosuserID = $this->_request->getParam('bootosuserID'); - - if (!is_numeric($configID) || !is_numeric($bootosuserID)) - $this->_redirect('/user/config/showconfig/type/'.$this->type.'/configID/'.$configID.'/modifyresult/error'); - - $groupID = $this->membership->getGroupID(); - - $bootosuser = new Application_Model_BootOsUser(); - $this->bootosuserMapper->find($bootosuserID,$bootosuser); - - $config = new Application_Model_Config(); - $this->configMapper->find($configID, $config); - - $hometypeMapper = new Application_Model_HomeTypeMapper(); - $hometype = $hometypeMapper->fetchAll(); - - if($config->getMembershipID() != null){ - if($this->membership->getID() != $config->getMembershipID() || !Pbs_Acl::checkRight('ceo')) - $this->_redirect('/user/config/showconfig/type/'.$this->type.'/configID/'.$configID.'/modifyresult/forbidden'); - }else{ - if($this->membership->getGroupID() != $config->getGroupID() || (!Pbs_Acl::checkRight('ce') && !Pbs_Acl::checkRight('cem'))) - $this->_redirect('/user/config/showconfig/type/'.$this->type.'/configID/'.$configID.'/modifyresult/forbidden'); - } - - if (!isset($_POST["editbootosuser"])){ - if(!isset($_POST['homepath'])){ - $_POST['login'] = $bootosuser->getLogin(); - $_POST['hometypeID'] = $bootosuser->getHometypeID(); - - } - - $bootosuserForm = new user_Form_BootosUser(array('action' => 'editbootosuser', 'type'=>$this->type, 'configID' => $configID, 'hometype' => $hometype),$_POST); - - if(!isset($_POST['homepath']) && $bootosuser->getHometypeID() == '2') - $bootosuserForm->populate(array('homepath' => $bootosuser->getHomepath())); - }else{ - $bootosuserForm = new user_Form_BootosUser(array('action' => 'editbootosuser', 'type'=>$this->type, 'configID' => $configID, 'hometype' => $hometype),$_POST); - - if ($bootosuserForm->isValid($_POST)) { - - $bootosuserold = $bootosuser; - - $bootosuser = new Application_Model_BootOsUser($_POST); - - if($bootosuserold->getHometypeID() != $bootosuser->getHometypeID() || - $bootosuserold->getHomepath() != $bootosuser->getHomepath()){ - //ACL Is he allowed to edit other than Metadata? - if(!Pbs_Acl::checkRight('ce')) - $this->_redirect('/user/config/showconfig/type/'.$this->type.'/configID/'.$configID.'/modifyresult/forbidden'); - } - - $bootosuser->setID($bootosuserID); - $bootosuser->setConfigID($configID); - $bootosuser->setHomepath(str_replace("%login-name%", $bootosuser->getLogin(), $bootosuser->getHomepath())); - if($bootosuser->getPassword() != '%password%') - $bootosuser->setPassword(crypt($bootosuser->getPassword(), '$6$'.randomString(8).'$')); - - try { - $this->bootosuserMapper->save($bootosuser); - }catch(Zend_Exception $e) - { - echo "Caught exception: " . get_class($e) . "
"; - echo "Message: " . $e->getMessage() . "
"; - $this->_redirect('/user/config/showconfig/type/'.$this->type.'/configID/'.$configID.'/modifyresult/error'); - } - - $this->_redirect('/user/config/showconfig/type/'.$this->type.'/configID/'.$configID.'/modifyresult/ok'); - } - - } - - $this->view->bootosuserForm = $bootosuserForm; - } - - public function deleteuserAction(){ - - $configID = $this->_request->getParam('configID'); - $bootosuserID = $this->_request->getParam('bootosuserID'); - if (!is_numeric($configID) || !is_numeric($bootosuserID)) - $this->_redirect('/user/config/showconfig/type/'.$this->type.'/configID/'.$configID.'/deleteresult/error'); - //ACL Darf er User löschen? - if(!Pbs_Acl::checkRight('cd') && !Pbs_Acl::checkRight('cdo')) - $this->_redirect('/user/config/showconfig/type/'.$this->type.'/configID/'.$configID.'/deleteresult/forbidden'); - - try{ - $bootosuser = new Application_Model_BootOsUser(); - $this->bootosuserMapper->find($bootosuserID,$bootosuser); - - $config = new Application_Model_Config(); - $this->configMapper->find($configID,$config); - - if($config->getMembershipID() != null){ - if($this->membership->getID() != $config->getMembershipID() || !Pbs_Acl::checkRight('cdo')) - $this->_redirect('/user/config/showconfig/type/'.$this->type.'/configID/'.$configID.'/deleteresult/forbidden'); - }else{ - if($this->membership->getGroupID() != $config->getGroupID() || !Pbs_Acl::checkRight('cd')) - $this->_redirect('/user/config/showconfig/type/'.$this->type.'/configID/'.$configID.'/deleteresult/forbidden'); - } - - $this->bootosuserMapper->delete($bootosuser); - - }catch(Zend_Exception $e){ - echo "Caught exception: " . get_class($e) . "
"; - echo "Message: " . $e->getMessage() . "
"; - $this->_redirect('/user/config/showconfig/type/'.$this->type.'/configID/'.$configID.'/deleteresult/error'); - } - $this->_redirect('/user/config/showconfig/type/'.$this->type.'/configID/'.$configID.'/deleteresult/ok'); - } - - - - public function editconfigAction() - { - //ACL Darf er Configs editieren? - if(!Pbs_Acl::checkRight('ce') && !Pbs_Acl::checkRight('cem') && !Pbs_Acl::checkRight('ceo')) - $this->_redirect('/user/config/index/type/'.$this->type.'/page/'.$this->page.'/modifyresult/forbidden'); - - $configID = $this->_request->getParam('configID'); - if (!is_numeric($configID)) - $this->_redirect('/user/config/index/type/'.$this->type.'/page/'.$this->page.'/modifyresult/error'); - - $groupID = $this->membership->getGroupID(); - - $config = new Application_Model_Config(); - $this->configMapper->find($configID, $config); - - if($config->getMembershipID() != null){ - if($this->membership->getID() != $config->getMembershipID() || !Pbs_Acl::checkRight('ceo')) - $this->_redirect('/user/config/index/type/'.$this->type.'/page/'.$this->page.'/modifyresult/forbidden'); - }else{ - if($this->membership->getGroupID() != $config->getGroupID() || (!Pbs_Acl::checkRight('ce') && !Pbs_Acl::checkRight('cem'))) - $this->_redirect('/user/config/index/type/'.$this->type.'/page/'.$this->page.'/modifyresult/forbidden'); - } - - if (!isset($_POST["editconfig"])){ - - $configForm = new user_Form_Config(array('action' => 'editconfig','page'=>$this->page, 'type'=>$this->type)); - $configForm->populate($config->toArray()); - - }else{ - $configForm = new user_Form_Config(array('action' => 'editconfig','page'=>$this->page, 'type'=>$this->type),$_POST); - - if ($configForm->isValid($_POST)) { - - $configold = $config; - - $config = new Application_Model_Config($_POST); - $config->setCreated(time()); - $config->setBootosID($configold->getBootosID()); - - if(Pbs_Acl::checkRight('ce') && $configold->getGroupID() != null){ - $config->setGroupID($this->membership->getGroupID()); - } - elseif(Pbs_Acl::checkRight('ceo') && $configold->getMembershipID() != null){ - $config->setVisible($configold->getVisible()); - $config->setMembershipID($this->membership->getID()); - } - else - $this->_redirect('/user/config/index/type/'.$this->type.'/page/'.$this->page.'/modifyresult/error'); - - $config->setID($configID); - - if($configold->getVisible() != $config->getVisible()){ - //ACL Is he allowed to edit other than Metadata? - if(!Pbs_Acl::checkRight('ce')) - $this->_redirect('/user/config/index/type/'.$this->type.'/page/'.$this->page.'/modifyresult/forbidden'); - } - - - try { - $this->configMapper->save($config); - }catch(Zend_Exception $e) - { - echo "Caught exception: " . get_class($e) . "
"; - echo "Message: " . $e->getMessage() . "
"; - $this->_redirect('/user/config/index/type/'.$this->type.'/page/'.$this->page.'/modifyresult/error'); - } - - $this->_redirect('/user/config/index/type/'.$this->type.'/page/'.$this->page.'/modifyresult/ok'); - } - - } - - $this->view->configForm = $configForm; - } - - public function deleteconfigAction() - { - //ACL Darf er Configs löschen? - if(!Pbs_Acl::checkRight('cd') && !Pbs_Acl::checkRight('cdo')) - $this->_redirect('/user/config/index/type/'.$this->type.'/page/'.$this->page.'/deleteresult/forbidden'); - - try{ - $configID = $this->_request->getParam('configID'); - if (!is_numeric($configID)) - $this->_redirect('/user/config/index/type/'.$this->type.'/page/'.$this->page.'/deleteresult/error'); - - $config = new Application_Model_Config(); - $this->configMapper->find($configID,$config); - - if($config->getMembershipID() != null){ - if($this->membership->getID() != $config->getMembershipID() || !Pbs_Acl::checkRight('cdo')) - $this->_redirect('/user/config/index/type/'.$this->type.'/page/'.$this->page.'/deleteresult/forbidden'); - }else{ - if($this->membership->getGroupID() != $config->getGroupID() || !Pbs_Acl::checkRight('cd')) - $this->_redirect('/user/config/index/type/'.$this->type.'/page/'.$this->page.'/deleteresult/forbidden'); - } - - $this->configMapper->delete($config); - - }catch(Zend_Exception $e){ - echo "Caught exception: " . get_class($e) . "
"; - echo "Message: " . $e->getMessage() . "
"; - $this->_redirect('/user/config/index/type/'.$this->type.'/page/'.$this->page.'/deleteresult/error'); - } - $this->_redirect('/user/config/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_ConfigController extends Zend_Controller_Action { + + protected $configMapper; + protected $bootosMapper; + protected $bootosuserMapper; + protected $bootmenuMapper; + protected $bootmenuentriesMapper; + protected $membershipMapper; + protected $membership; + protected $page; + protected $config; + protected $type; + + public function init() { + if (Zend_Auth::getInstance()->hasIdentity()) { + $userIDsNamespace = Zend_Session::namespaceGet('userIDs'); + if($userIDsNamespace['membershipID'] == '') { + $this->_redirect('/user/index'); + } + + $this->configMapper = new Application_Model_ConfigMapper(); + $this->bootosuserMapper = new Application_Model_BootOsUserMapper(); + $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); + } + + $groupID = $this->membership->getGroupID(); + + //ACL Darf er Configs sehen? + if(!Pbs_Acl::checkRight('csai') && !Pbs_Acl::checkRight('csui')) + { $this->_redirect('/user/index'); } + + $this->configMapper = new Application_Model_ConfigMapper(); + $this->bootosMapper = new Application_Model_BootOsMapper(); + $this->bootmenuMapper = new Application_Model_BootMenuMapper(); + $this->bootmenuentriesMapper = new Application_Model_BootMenuEntriesMapper(); + $groupMapper = new Application_Model_GroupMapper(); + $this->view->bootoslist = array(); + $this->view->configlist = array(); + + if($this->type == 'own' && Pbs_Acl::checkRight('csui')) { + $this->view->type = 'own'; + $bootmenu = $this->bootmenuMapper->findBy(array('membershipID' => $this->membership->getID())); + if($bootmenu != null) { + $bootmenuID = $bootmenu[0]->getID(); + $bootmenuentries = $this->bootmenuentriesMapper->findBy(array('bootmenuID' => $bootmenuID)); + foreach ($bootmenuentries as $bootmenuentry) { + $bootos = $this->bootosMapper->find($bootmenuentry->getBootosID()); + $bootos->setGroupID("[".$bootos->getGroupID()."] ".$groupMapper->find($bootos->getGroupID())->getTitle()); + $this->view->bootoslist[$bootos->getID()] = $bootos; + $this->view->configlist[$bootos->getID()] = $this->configMapper->findBy(array('membershipID' => $this->membership->getID(), 'bootosID' => $bootos->getID())); + foreach ($this->view->configlist[$bootos->getID()] as $config) { + $config->setCreated(date(Zend_Registry::get('dateformat'), $config->getCreated())); + } + } + } + } else { + $groupgroupsMapper = new Application_Model_GroupGroupsMapper(); + + $parents = array(); + $groupconfs = array(); + $ownerconfs = 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; + if(Pbs_Acl::checkRight('cc')) { + $ownerconfs = $this->configMapper->findBy(array('groupID' => $b->getGroupID(), 'membershipID' => null, 'bootosID' => $b->getID())); + if($groupID != $b->getGroupID()) + { $groupconfs = $this->configMapper->findBy(array('groupID' => $groupID, 'membershipID' => null, 'bootosID' => $b->getID())); } + $this->view->configlist[$b->getID()] = array_merge($ownerconfs, $groupconfs); + } else { + $ownerconfs = $this->configMapper->findBy(array('groupID' => $b->getGroupID(), 'membershipID' => null, 'bootosID' => $b->getID(), 'visible' => '1')); + if($groupID != $b->getGroupID()) + { $groupconfs = $this->configMapper->findBy(array('groupID' => $groupID, 'membershipID' => null, 'bootosID' => $b->getID(), 'visible' => '1')); } + $this->view->configlist[$b->getID()] = array_merge($ownerconfs, $groupconfs); + + } + foreach ($this->view->configlist[$b->getID()] as $config) { + $config->setCreated(date(Zend_Registry::get('dateformat'), $config->getCreated())); + } + } + elseif($k == 0 && $b->getPublic() == -1 && Pbs_Acl::checkRight('boc')) { + $this->view->bootoslist[] = $b; + if(Pbs_Acl::checkRight('cc')) { + $ownerconfs = $this->configMapper->findBy(array('groupID' => $b->getGroupID(), 'membershipID' => null, 'bootosID' => $b->getID())); + if($groupID != $b->getGroupID()) + { $groupconfs = $this->configMapper->findBy(array('groupID' => $groupID, 'membershipID' => null, 'bootosID' => $b->getID())); } + $this->view->configlist[$b->getID()] = array_merge($ownerconfs, $groupconfs); + } else { + $ownerconfs = $this->configMapper->findBy(array('groupID' => $b->getGroupID(), 'membershipID' => null, 'bootosID' => $b->getID(), 'visible' => '1')); + if($groupID != $b->getGroupID()) + { $groupconfs = $this->configMapper->findBy(array('groupID' => $groupID, 'membershipID' => null, 'bootosID' => $b->getID(), 'visible' => '1')); } + $this->view->configlist[$b->getID()] = array_merge($ownerconfs, $groupconfs); + } + foreach ($this->view->configlist[$b->getID()] as $config) { + $config->setCreated(date(Zend_Registry::get('dateformat'), $config->getCreated())); + } + } + } + } + + $this->view->bootoslist = array_reverse($this->view->bootoslist); + + if(count($this->view->bootoslist) > 0) { + foreach ($this->view->bootoslist as $bootos) { + $bootos->setGroupID("[".$bootos->getGroupID()."] ".$groupMapper->find($bootos->getGroupID())->getTitle()); + } + } + $this->view->type = 'group'; + //$this->view->configlist = $this->configMapper->findBy(array('groupID' => $this->membership->getGroupID())); + } + + //print_a($this->view->configlist); + + // Search + $search = $this->_request->getParam('search'); + $mySearch = new Pbs_Search(); + $mySearch->setSearchTerm($search); + $mySearch->setType($this->type); + $mySearch->setModule('config'); + if($search != '') { + $this->view->search = $mySearch->getSearchTerm(); + $this->view->configlist = $mySearch->search($this->view->configlist + ); + } + $this->view->searchform = $mySearch->searchForm(); + + // Pagination + $pagination = new Pbs_Pagination(); + $pagination->setPerPage(10); + $pagination->setElement($this->view->bootoslist); + $pagination->setRequestPage($this->_request->getParam('page')); + $pagination->setPageUrl('/user/config/index/type/'.$this->type.((isset($this->view->search)) ? '/search/'.$this->view->search : '')); + $this->view->bootoslist = $pagination->getElements(); + + $this->view->pagination = $pagination->pagination(); + $this->view->page = $pagination->getRequestPage(); + + } + + public function searchAction() { + $this->_redirect('/user/config/index/type/'.$this->type.'/search/'.($_GET['search'])); + } + + public function createconfigAction() { + //ACL Darf er Configs erstellen? + if(!Pbs_Acl::checkRight('cc') && !Pbs_Acl::checkRight('cco')) + { $this->_redirect('/user/config/index/type/'.$this->type.'/page/'.$this->page.'/addresult/forbidden'); } + + $bootosID = $this->_request->getParam('bootosID'); + + if (!is_numeric($bootosID)) + { $this->_redirect('/user/config/index/type/'.$this->type.'/page/'.$this->page.'/addresult/error'); } + + if (!isset($_POST["createconfig"])) { + $configForm = new user_Form_Config(array('action' => 'createconfig', 'page' => $this->page, 'type' => $this->type)); + } else { + $configForm = new user_Form_Config(array('action' => 'createconfig', 'page' => $this->page, 'type' => $this->type), $_POST); + + if ($configForm->isValid($_POST)) { + + $config = new Application_Model_Config($_POST); + $config->setCreated(time()); + $config->setBootosID($bootosID); + + if(Pbs_Acl::checkRight('cc') && $this->_request->getParam('type') == 'group') { + $config->setGroupID($this->membership->getGroupID()); + } + elseif(Pbs_Acl::checkRight('cco') && $this->_request->getParam('type') == 'own') { + $config->setVisible('1'); + $config->setMembershipID($this->membership->getID()); + } + else + { $this->_redirect('/user/config/index/type/'.$this->type.'/page/'.$this->page.'/addresult/error'); } + + try { + $this->configMapper->save($config); + } catch(Zend_Exception $e) { + echo "Caught exception: " . get_class($e) . "
"; + echo "Message: " . $e->getMessage() . "
"; + $this->_redirect('/user/config/index/type/'.$this->type.'/page/'.$this->page.'/addresult/error'); + } + $this->_redirect('/user/config/index/type/'.$this->type.'/page/'.$this->page.'/addresult/ok'); + } + } + + $this->view->configForm = $configForm; + } + + public function showconfigAction() { + + $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); + } + + $configID = $this->_request->getParam('configID'); + if (!is_numeric($configID)) + { $this->_redirect('/user/config/index/type/'.$this->type.'/page/'.$this->page.'/modifyresult/error'); } + + $groupID = $this->membership->getGroupID(); + + $config = new Application_Model_Config(); + $this->configMapper->find($configID, $config); + + $hometypeMapper = new Application_Model_HomeTypeMapper(); + + $this->view->configID = $configID; + $this->view->type = $this->_request->getParam('type'); + $this->view->config = $this->configMapper->find($configID)->getTitle(); + $this->view->userlist = $this->bootosuserMapper->findBy(array('configID' => $configID)); + foreach($this->view->userlist as $user) { + $user->setHometypeID("[".$user->getHometypeID()."] ".$hometypeMapper->find($user->getHometypeID())->getName()); + } + + } + + public function adduserAction() { + $configID = $this->_request->getParam('configID'); + if (!is_numeric($configID)) + { $this->_redirect('/user/config/showconfig/type/'.$this->type.'/configID/'.$configID.'/addresult/error'); } + //ACL Darf er User adden? + if(!Pbs_Acl::checkRight('cc') && !Pbs_Acl::checkRight('cco')) + { $this->_redirect('/user/config/showconfig/type/'.$this->type.'/configID/'.$configID.'/addresult/forbidden'); } + + $hometypeMapper = new Application_Model_HomeTypeMapper(); + $hometype = $hometypeMapper->fetchAll(); + + if (!isset($_POST["addbootosuser"])) { + $bootosuserForm = new user_Form_BootosUser(array('action' => 'addbootosuser', 'type' => $this->type, 'configID' => $configID, 'hometype' => $hometype), $_POST); + } else { + $bootosuserForm = new user_Form_BootosUser(array('action' => 'addbootosuser', 'type' => $this->type, 'configID' => $configID, 'hometype' => $hometype), $_POST); + + if ($bootosuserForm->isValid($_POST)) { + + $bootosuser = new Application_Model_BootOsUser($_POST); + $bootosuser->setConfigID($configID); + $bootosuser->setHomepath(str_replace("%login-name%", $bootosuser->getLogin(), $bootosuser->getHomepath())); + if($bootosuser->getPassword() != '%password%') + { $bootosuser->setPassword(crypt($bootosuser->getPassword(), '$6$'.randomString(8).'$')); } + + try { + $this->bootosuserMapper->save($bootosuser); + } catch(Zend_Exception $e) { + echo "Caught exception: " . get_class($e) . "
"; + echo "Message: " . $e->getMessage() . "
"; + $this->_redirect('/user/config/showconfig/type/'.$this->type.'/configID/'.$configID.'/addresult/error'); + } + $this->_redirect('/user/config/showconfig/type/'.$this->type.'/configID/'.$configID.'/addresult/ok'); + } + } + + $this->view->bootosuserForm = $bootosuserForm; + } + + + public function edituserAction() { + //ACL Darf er Configs editieren? + if(!Pbs_Acl::checkRight('ce') && !Pbs_Acl::checkRight('cem') && !Pbs_Acl::checkRight('ceo')) + { $this->_redirect('/user/config/showconfig/type/'.$this->type.'/configID/'.$configID.'/modifyresult/forbidden'); } + + $configID = $this->_request->getParam('configID'); + $bootosuserID = $this->_request->getParam('bootosuserID'); + + if (!is_numeric($configID) || !is_numeric($bootosuserID)) + { $this->_redirect('/user/config/showconfig/type/'.$this->type.'/configID/'.$configID.'/modifyresult/error'); } + + $groupID = $this->membership->getGroupID(); + + $bootosuser = new Application_Model_BootOsUser(); + $this->bootosuserMapper->find($bootosuserID, $bootosuser); + + $config = new Application_Model_Config(); + $this->configMapper->find($configID, $config); + + $hometypeMapper = new Application_Model_HomeTypeMapper(); + $hometype = $hometypeMapper->fetchAll(); + + if($config->getMembershipID() != null) { + if($this->membership->getID() != $config->getMembershipID() || !Pbs_Acl::checkRight('ceo')) + { $this->_redirect('/user/config/showconfig/type/'.$this->type.'/configID/'.$configID.'/modifyresult/forbidden'); } + } else { + if($this->membership->getGroupID() != $config->getGroupID() || (!Pbs_Acl::checkRight('ce') && !Pbs_Acl::checkRight('cem'))) + { $this->_redirect('/user/config/showconfig/type/'.$this->type.'/configID/'.$configID.'/modifyresult/forbidden'); } + } + + if (!isset($_POST["editbootosuser"])) { + if(!isset($_POST['homepath'])) { + $_POST['login'] = $bootosuser->getLogin(); + $_POST['hometypeID'] = $bootosuser->getHometypeID(); + + } + + $bootosuserForm = new user_Form_BootosUser(array('action' => 'editbootosuser', 'type' => $this->type, 'configID' => $configID, 'hometype' => $hometype), $_POST); + + if(!isset($_POST['homepath']) && $bootosuser->getHometypeID() == '2') + { $bootosuserForm->populate(array('homepath' => $bootosuser->getHomepath())); } + } else { + $bootosuserForm = new user_Form_BootosUser(array('action' => 'editbootosuser', 'type' => $this->type, 'configID' => $configID, 'hometype' => $hometype), $_POST); + + if ($bootosuserForm->isValid($_POST)) { + + $bootosuserold = $bootosuser; + + $bootosuser = new Application_Model_BootOsUser($_POST); + + if($bootosuserold->getHometypeID() != $bootosuser->getHometypeID() || + $bootosuserold->getHomepath() != $bootosuser->getHomepath()) { + //ACL Is he allowed to edit other than Metadata? + if(!Pbs_Acl::checkRight('ce')) + { $this->_redirect('/user/config/showconfig/type/'.$this->type.'/configID/'.$configID.'/modifyresult/forbidden'); } + } + + $bootosuser->setID($bootosuserID); + $bootosuser->setConfigID($configID); + $bootosuser->setHomepath(str_replace("%login-name%", $bootosuser->getLogin(), $bootosuser->getHomepath())); + if($bootosuser->getPassword() != '%password%') + { $bootosuser->setPassword(crypt($bootosuser->getPassword(), '$6$'.randomString(8).'$')); } + + try { + $this->bootosuserMapper->save($bootosuser); + } catch(Zend_Exception $e) { + echo "Caught exception: " . get_class($e) . "
"; + echo "Message: " . $e->getMessage() . "
"; + $this->_redirect('/user/config/showconfig/type/'.$this->type.'/configID/'.$configID.'/modifyresult/error'); + } + + $this->_redirect('/user/config/showconfig/type/'.$this->type.'/configID/'.$configID.'/modifyresult/ok'); + } + + } + + $this->view->bootosuserForm = $bootosuserForm; + } + + public function deleteuserAction() { + + $configID = $this->_request->getParam('configID'); + $bootosuserID = $this->_request->getParam('bootosuserID'); + if (!is_numeric($configID) || !is_numeric($bootosuserID)) + { $this->_redirect('/user/config/showconfig/type/'.$this->type.'/configID/'.$configID.'/deleteresult/error'); } + //ACL Darf er User löschen? + if(!Pbs_Acl::checkRight('cd') && !Pbs_Acl::checkRight('cdo')) + { $this->_redirect('/user/config/showconfig/type/'.$this->type.'/configID/'.$configID.'/deleteresult/forbidden'); } + + try { + $bootosuser = new Application_Model_BootOsUser(); + $this->bootosuserMapper->find($bootosuserID, $bootosuser); + + $config = new Application_Model_Config(); + $this->configMapper->find($configID, $config); + + if($config->getMembershipID() != null) { + if($this->membership->getID() != $config->getMembershipID() || !Pbs_Acl::checkRight('cdo')) + { $this->_redirect('/user/config/showconfig/type/'.$this->type.'/configID/'.$configID.'/deleteresult/forbidden'); } + } else { + if($this->membership->getGroupID() != $config->getGroupID() || !Pbs_Acl::checkRight('cd')) + { $this->_redirect('/user/config/showconfig/type/'.$this->type.'/configID/'.$configID.'/deleteresult/forbidden'); } + } + + $this->bootosuserMapper->delete($bootosuser); + + } catch(Zend_Exception $e) { + echo "Caught exception: " . get_class($e) . "
"; + echo "Message: " . $e->getMessage() . "
"; + $this->_redirect('/user/config/showconfig/type/'.$this->type.'/configID/'.$configID.'/deleteresult/error'); + } + $this->_redirect('/user/config/showconfig/type/'.$this->type.'/configID/'.$configID.'/deleteresult/ok'); + } + + + + public function editconfigAction() { + //ACL Darf er Configs editieren? + if(!Pbs_Acl::checkRight('ce') && !Pbs_Acl::checkRight('cem') && !Pbs_Acl::checkRight('ceo')) + { $this->_redirect('/user/config/index/type/'.$this->type.'/page/'.$this->page.'/modifyresult/forbidden'); } + + $configID = $this->_request->getParam('configID'); + if (!is_numeric($configID)) + { $this->_redirect('/user/config/index/type/'.$this->type.'/page/'.$this->page.'/modifyresult/error'); } + + $groupID = $this->membership->getGroupID(); + + $config = new Application_Model_Config(); + $this->configMapper->find($configID, $config); + + if($config->getMembershipID() != null) { + if($this->membership->getID() != $config->getMembershipID() || !Pbs_Acl::checkRight('ceo')) + { $this->_redirect('/user/config/index/type/'.$this->type.'/page/'.$this->page.'/modifyresult/forbidden'); } + } else { + if($this->membership->getGroupID() != $config->getGroupID() || (!Pbs_Acl::checkRight('ce') && !Pbs_Acl::checkRight('cem'))) + { $this->_redirect('/user/config/index/type/'.$this->type.'/page/'.$this->page.'/modifyresult/forbidden'); } + } + + if (!isset($_POST["editconfig"])) { + + $configForm = new user_Form_Config(array('action' => 'editconfig', 'page' => $this->page, 'type' => $this->type)); + $configForm->populate($config->toArray()); + + } else { + $configForm = new user_Form_Config(array('action' => 'editconfig', 'page' => $this->page, 'type' => $this->type), $_POST); + + if ($configForm->isValid($_POST)) { + + $configold = $config; + + $config = new Application_Model_Config($_POST); + $config->setCreated(time()); + $config->setBootosID($configold->getBootosID()); + + if(Pbs_Acl::checkRight('ce') && $configold->getGroupID() != null) { + $config->setGroupID($this->membership->getGroupID()); + } + elseif(Pbs_Acl::checkRight('ceo') && $configold->getMembershipID() != null) { + $config->setVisible($configold->getVisible()); + $config->setMembershipID($this->membership->getID()); + } + else + { $this->_redirect('/user/config/index/type/'.$this->type.'/page/'.$this->page.'/modifyresult/error'); } + + $config->setID($configID); + + if($configold->getVisible() != $config->getVisible()) { + //ACL Is he allowed to edit other than Metadata? + if(!Pbs_Acl::checkRight('ce')) + { $this->_redirect('/user/config/index/type/'.$this->type.'/page/'.$this->page.'/modifyresult/forbidden'); } + } + + + try { + $this->configMapper->save($config); + } catch(Zend_Exception $e) { + echo "Caught exception: " . get_class($e) . "
"; + echo "Message: " . $e->getMessage() . "
"; + $this->_redirect('/user/config/index/type/'.$this->type.'/page/'.$this->page.'/modifyresult/error'); + } + + $this->_redirect('/user/config/index/type/'.$this->type.'/page/'.$this->page.'/modifyresult/ok'); + } + + } + + $this->view->configForm = $configForm; + } + + public function deleteconfigAction() { + //ACL Darf er Configs löschen? + if(!Pbs_Acl::checkRight('cd') && !Pbs_Acl::checkRight('cdo')) + { $this->_redirect('/user/config/index/type/'.$this->type.'/page/'.$this->page.'/deleteresult/forbidden'); } + + try { + $configID = $this->_request->getParam('configID'); + if (!is_numeric($configID)) + { $this->_redirect('/user/config/index/type/'.$this->type.'/page/'.$this->page.'/deleteresult/error'); } + + $config = new Application_Model_Config(); + $this->configMapper->find($configID, $config); + + if($config->getMembershipID() != null) { + if($this->membership->getID() != $config->getMembershipID() || !Pbs_Acl::checkRight('cdo')) + { $this->_redirect('/user/config/index/type/'.$this->type.'/page/'.$this->page.'/deleteresult/forbidden'); } + } else { + if($this->membership->getGroupID() != $config->getGroupID() || !Pbs_Acl::checkRight('cd')) + { $this->_redirect('/user/config/index/type/'.$this->type.'/page/'.$this->page.'/deleteresult/forbidden'); } + } + + $this->configMapper->delete($config); + + } catch(Zend_Exception $e) { + echo "Caught exception: " . get_class($e) . "
"; + echo "Message: " . $e->getMessage() . "
"; + $this->_redirect('/user/config/index/type/'.$this->type.'/page/'.$this->page.'/deleteresult/error'); + } + $this->_redirect('/user/config/index/type/'.$this->type.'/page/'.$this->page.'/deleteresult/ok'); + } } -- cgit v1.2.3-55-g7522