hasIdentity()) { $userIDsNamespace = Zend_Session::namespaceGet('userIDs'); if($userIDsNamespace['membershipID'] ==''){ $pbsNotifier = new Pbs_Notifier(); echo $pbsNotifier->notify('No membershipID set','forbidden'); } $this->filterMapper = new Application_Model_FilterMapper(); $membershipMapper = new Application_Model_MembershipMapper(); $this->membership = new Application_Model_Membership(); $membershipMapper->find($userIDsNamespace['membershipID'],$this->membership); $this->db = Zend_Db_Table::getDefaultAdapter(); } else { $this->_helper->redirector('login', 'auth'); } } public function indexAction() { // ACL: Is he allowed to see the overview if(!Pbs_Acl::checkRight('fo')) $this->_redirect('/user'); $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); } $filters = $this->filterMapper->findBy('groupID',$this->membership->getGroupID(),'priority','DESC'); foreach($filters as $filter){ $ff = new Application_Model_Filter(); $ff->setOptions($filter); $ff->setID($filter['filterID']); $allFilter[] = $ff; } $this->view->filters = $allFilter; } public function addfilterAction() { // ACL: Is he allowed to add a Filter if(!Pbs_Acl::checkRight('fa')) $this->_redirect('/user'); $rr = new Application_Model_GroupGroupsMapper(); $groupMapper = new Application_Model_GroupMapper(); $parentGroups = $rr->getParentGroups($this->membership->getGroupID()); $bootmenus = array(); foreach($parentGroups as $parentGroup){ foreach($parentGroup as $p){ $bmmapper = new Application_Model_BootMenuMapper(); $result = $bmmapper->findBy('groupID',$p); foreach($result as $rr){ $bm = new Application_Model_BootMenu(); $bm->setOptions($rr); $bm->setID($rr['bootmenuID']); if($bm->getMembershipID() == null){ $group = new Application_Model_Group(); $groupMapper->find($bm->getGroupID(),$group); $name = $group->getTitle(); $bootmenus[$name][$bm->getID()] = $bm->getTitle(); } } } } $this->view->bootmenus = $bootmenus; if (!isset($_POST["add"])){ $addfilterform = new user_Form_Filter(array('buttontext' => 'Create Filter','bootmenus'=>$bootmenus)); $this->view->addfilterform = $addfilterform; }else { $addfilterform = new user_Form_Filter(array('buttontext' => 'Create Filter','bootmenus'=>$bootmenus),$_POST); if ($addfilterform->isValid($_POST)) { try{ $newfilter = new Application_Model_Filter($_POST); $newfilter->setCreated(time()); $newfilter->setGroupID($this->membership->getGroupID()); $newfilter->setMembershipID(null); $newfilter2 = new Application_Model_FilterMapper(); $id = $newfilter2->save($newfilter); $filterentriesMapper = new Application_Model_FilterEntriesMapper(); $filterentry = new Application_Model_FilterEntries(); $filterentry->setFilterID($id); $filterentry->setFiltertypeID(6); $filterentry->setFiltervalue($this->membership->getGroupID()); $filterentriesMapper->save($filterentry); $this->_redirect('/user/filter/index/addresult/ok'); }catch (Zend_Exception $e) { echo "Error message 2: " . $e->getMessage() . "\n"; $this->_redirect('/user/filter/index/addresult/error'); } } $this->view->addfilterform = $addfilterform; } } public function removefilterAction() { $filterID = $this->_request->getParam('filterID'); $filtermapper = new Application_Model_FilterMapper(); // ACL: Is he allowed to remove the filter if(!Pbs_Acl::checkRight('fd')) $this->_redirect('/user'); if(is_numeric($filterID)){ $filter = new Application_Model_Filter(); $filtermapper->find($filterID,$filter); if($filter->getGroupID() == $this->membership->getGroupID()){ $deletefilter = new Application_Model_Filter(); $deletefilter->setID($filterID); $filtermapper->delete($deletefilter); $this->_redirect('/user/filter/index/deleteresult/ok'); } else{ $this->_redirect('/user/filter/index/deleteresult/forbidden'); } } else{ $this->_redirect('/user/filter/index/deleteresult/error'); } } public function editfilterAction() { $bmmapper = new Application_Model_BootMenuMapper(); $result = $bmmapper->findBy('groupID',$this->membership->getGroupID()); foreach($result as $rr){ $bm = new Application_Model_BootMenu(); $bm->setOptions($rr); $bm->setID($rr['bootmenuID']); $bootmenus[] = $bm; } // ACL: Is he allowed to edit the filter or the filterpriority? if(!Pbs_Acl::checkRight('fe') && !Pbs_Acl::checkRight('fefp')) $this->_redirect('/user'); if (!isset($_POST["add"])){ $filterID = $this->_request->getParam('filterID'); $filter = new Application_Model_Filter(); $filtermapper = new Application_Model_FilterMapper(); $filtermapper->find($filterID,$filter); if($filter->getGroupID() == $this->membership->getGroupID()){ $filter2 = $filter->toArray(); $editfilterform = new user_Form_Filter(array('buttontext' => 'Edit Filter','bootmenus'=>$bootmenus)); $editfilterform->populate($filter2); $this->view->editfilterform = $editfilterform; } else{ $this->_redirect('/user/filter/index/modifyresult/forbidden'); } } else{ try{ $filterID = $this->_request->getParam('filterID'); $filter = new Application_Model_Filter(); $filtermapper = new Application_Model_FilterMapper(); $filtermapper->find($filterID,$filter); if($filter->getGroupID() == $this->membership->getGroupID()){ $editfilterform = new user_Form_Filter(array('buttontext' => 'Edit Filter','bootmenus'=>$bootmenus),$_POST); if ($editfilterform->isValid($_POST)) { $filtermapper = new Application_Model_FilterMapper(); $newfilterentry = new Application_Model_Filter($_POST); $newfilterentry->setID($this->_request->getParam('filterID')); $newfilterentry->setGroupID($this->membership->getGroupID()); $newfilterentry->setMembershipID(null); // ACL: if he is only allowed to edit filterpriority if(Pbs_Acl::checkRight('fefp')){ $DBfilterentry = new Application_Model_Filter(); $filtermapper->find($this->_request->getParam('filterID'),$DBfilterentry); $compareresult = $filtermapper->compare($newfilterentry,$DBfilterentry); if(isset($compareresult['priority']) && count($compareresult) == 1){ $filtermapper->save($newfilterentry); $this->_redirect('/user/filter/index/modifyresult/ok'); } else{ $this->_redirect('/user/filter/index/modifyresult/forbidden'); } } // ACL: he is allowed to edit the filter elseif(Pbs_Acl::checkRight('fe')){ $filtermapper->save($newfilterentry); $this->_redirect('/user/filter/index/modifyresult/ok'); } } $this->view->editfilterform = $editfilterform; } else{ $this->_redirect('/user/filter/index/modifyresult/forbidden'); } }catch (Zend_Exception $e) { echo "Error message 2: " . $e->getMessage() . "\n"; $this->_redirect('/user/filter/index/modifyresult/error'); } } } private function prepareFormData(){ $poolMapper = new Application_Model_PoolMapper(); $pools = $poolMapper->findBY('groupID',$this->membership->getGroupID()); $bootisoMapper = new Application_Model_BootIsoMapper(); $bootisos = $bootisoMapper->findBY('groupID',$this->membership->getGroupID()); $membershipMapper = new Application_Model_MembershipMapper(); $memberships = $membershipMapper->findBY('groupID',$this->membership->getGroupID()); $grouppMapper = new Application_Model_GroupMapper(); $group = new Application_Model_Group(); $grouppMapper->find($this->membership->getGroupID(),$group); $groups[] = $group->toArray(); $clientMapper = new Application_Model_ClientMapper(); $clients = $clientMapper->findBY('groupID',$this->membership->getGroupID()); return array ( 'clients' => $clients, 'memberships' => $memberships, 'groups' => $groups, 'bootisos' => $bootisos, 'pools' => $pools); } public function addfilterentryAction() { // ACL: is he allowed to create a new filterentry? if(!Pbs_Acl::checkRight('ffa')) $this->_redirect('/user'); $filterID = $this->_request->getParam('filterID'); $filterMapper = new Application_Model_FilterMapper(); $filter = new Application_Model_Filter(); $filterMapper->find($filterID,$filter); $selectData = $this->prepareFormData(); if($filter->getGroupID() == $this->membership->getGroupID()){ if (!isset($_POST["add"])){ try{ $addform = new user_Form_FilterEntry(array( 'buttontext' => 'Add Filterentry', 'filterID' => $filterID, 'selectData' => $selectData, 'data' => $_POST )); $addform->populate($_POST); $this->view->addform = $addform; }catch (Zend_Exception $e) { echo "Error message 2: " . $e->getMessage() . "\n"; $this->_redirect('/user/filter/index/addresult/error'); } } else{ $addform = new user_Form_FilterEntry(array('buttontext' => 'Add Filterentry', 'selectData' => $selectData, 'data'=>$_POST )); if ($addform->isValid($_POST)) { print_a('valid'); $newfilterenty = new Application_Model_FilterEntries(); $newfilterenty->setFilterID($filterID); $newfilterenty->setFiltertypeID($_POST['filtertypeID']); if($_POST['filtertypeID'] == 1){ $newfilterenty->setFiltervalue($this->fillup($_POST['filtervalue'],3,'.')); $newfilterenty->setFiltervalue2($this->fillup($_POST['filtervalue2'],3,'.')); } elseif($_POST['filtertypeID'] == 2){ $newfilterenty->setFiltervalue($this->fillup($_POST['filtervalue'],2,':')); $newfilterenty->setFiltervalue2($this->fillup($_POST['filtervalue2'],2,':')); } else{ $newfilterenty->setFiltervalue($_POST['filtervalue']); if(isset($_POST['filtervalue2'])){ $newfilterenty->setFiltervalue2($_POST['filtervalue2']); } } $newfilter2 = new Application_Model_FilterEntriesMapper(); $newfilter2->save($newfilterenty); $this->_redirect('/user/filter/index/addresult/ok'); } $this->view->addform = $addform; } } else{ $this->_redirect('/user/filter/index/addresult/forbidden'); } } public function editfilterentryAction() { //ACL: is he allowed to edit filterentrys ? if(!Pbs_Acl::checkRight('ffe')) $this->_redirect('/user'); $selectData = $this->prepareFormData(); if (!isset($_POST["add"])){ try{ $filterentriesID = $this->_request->getParam('filterentriesID'); $filterentry = new Application_Model_FilterEntries(); $filterentriesmapper = new Application_Model_FilterEntriesMapper(); $filterentriesmapper->find($filterentriesID,$filterentry); $filterMapper = new Application_Model_FilterMapper(); $filter = new Application_Model_Filter(); $filterMapper->find($filterentry->getFilterID(),$filter); if($filter->getGroupID() == $this->membership->getGroupID()){ if(isset($_POST['filtertypeID']) && $_POST['filtertypeID'] != $filterentry->getFiltertypeID()){ $filterentry->setFiltertypeID($_POST['filtertypeID']) ; } $data = $filterentry->toArray(); $editfilterform = new user_Form_FilterEntry(array('buttontext' => 'Edit Filterentry', 'selectData' => $selectData, 'data' => $data )); $editfilterform->populate($filterentry->toArray()); $this->view->editfilterform = $editfilterform; } else{ $this->_redirect('/user/filter/index/modifyresult/forbidden'); } }catch (Zend_Exception $e) { echo "Error message 2: " . $e->getMessage() . "\n"; $this->_redirect('/user/filter/index/modifyresult/error'); } } else{ try{ $filterentriesID = $this->_request->getParam('filterentriesID'); $editfilterform = new user_Form_FilterEntry(array('buttontext' => 'Edit Filterentry', 'selectData' => $selectData, 'data' => $_POST )); if ($editfilterform->isValid($_POST)) { $filterentry = new Application_Model_FilterEntries(); $filterentriesmapper = new Application_Model_FilterEntriesMapper(); $filterentriesmapper->find($filterentriesID,$filterentry); $filterMapper = new Application_Model_FilterMapper(); $filter = new Application_Model_Filter(); $filterMapper->find($filterentry->getFilterID(),$filter); if($filter->getGroupID() == $this->membership->getGroupID()){ if($_POST['filterID'] == '') unset($_POST['filterID']); $newfilterenty = new Application_Model_FilterEntries($_POST); $newfilterenty->setID($filterentriesID); if($_POST['filtertypeID'] == 1){ $newfilterenty->setFiltervalue($this->fillup($_POST['filtervalue'],3,'.')); $newfilterenty->setFiltervalue2($this->fillup($_POST['filtervalue2'],3,'.')); } elseif($_POST['filtertypeID'] == 2){ $newfilterenty->setFiltervalue($this->fillup($_POST['filtervalue'],2,';')); $newfilterenty->setFiltervalue2($this->fillup($_POST['filtervalue2'],2,':')); } else{ $newfilterenty->setFiltervalue($_POST['filtervalue']); $newfilterenty->setFiltervalue2($_POST['filtervalue2']); } $newfilter2 = new Application_Model_FilterEntriesMapper(); $newfilter2->save($newfilterenty); $this->_redirect('/user/filter/index/modifyresult/ok'); } else{ $this->_redirect('/user/filter/index/modifyresult/forbidden'); } } $this->view->editfilterform = $editfilterform; }catch (Zend_Exception $e) { echo "Error message 2: " . $e->getMessage() . "\n"; $this->_redirect('/user/filter/index/modifyresult/error'); } } } public function removefilterentryAction() { //ACL: is he autohorized to delete a filterentry? if(!Pbs_Acl::checkRight('ffd')) $this->_redirect('/user'); $filterentriesID = $this->_request->getParam('filterentriesID'); if(is_numeric($filterentriesID)){ $filterentriesmapper = new Application_Model_FilterEntriesMapper(); $filterentry = new Application_Model_FilterEntries(); $filterentriesmapper->find($filterentriesID, $filterentry); $filterID = $filterentry->getFilterID(); $filterMapper = new Application_Model_FilterMapper(); $filter = new Application_Model_Filter(); $filterMapper->find($filterID,$filter); if($filter->getGroupID() == $this->membership->getGroupID()){ try{ $deletefilterentry = new Application_Model_FilterEntries(); $deletefilterentry->setID($filterentriesID); $filterentriesmapper = new Application_Model_FilterEntriesMapper(); $filterentriesmapper->delete($deletefilterentry); $this->_redirect('/user/filter/index/deleteresult/ok'); }catch (Zend_Exception $e) { echo "Error message 2: " . $e->getMessage() . "\n"; $this->_redirect('/user/filter/index/deleteresult/error'); } } else{ $this->_redirect('/user/filter/index/deleteresult/forbidden'); } } else{ $this->_redirect('/user/filter/index/deleteresult/error'); } } private function fillup($string, $length, $seperator=':',$sign='0'){ $ar = explode($seperator,$string); $representation = array(); foreach($ar as $part){ $representation[] = sprintf("%".$sign.$length."s",$part); } return implode($seperator,$representation); } }