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'); } }