diff options
Diffstat (limited to 'application/modules/user/controllers/PoolController.php')
| -rw-r--r-- | application/modules/user/controllers/PoolController.php | 245 |
1 files changed, 123 insertions, 122 deletions
diff --git a/application/modules/user/controllers/PoolController.php b/application/modules/user/controllers/PoolController.php index f2829ff..6ec8aa7 100644 --- a/application/modules/user/controllers/PoolController.php +++ b/application/modules/user/controllers/PoolController.php @@ -3,23 +3,24 @@ class User_PoolController extends Zend_Controller_Action { private $membership; - public function init() - { - if($_SESSION['membershipID'] ==''){ + public function init() + { + $userIDsNamespace = Zend_Session::namespaceGet('userIDs'); + if($userIDsNamespace['membershipID'] ==''){ $pbsNotifier = new Pbs_Notifier(); echo $pbsNotifier->notify('No membershipID set','forbidden'); } - + $membershipMapper = new Application_Model_MembershipMapper(); $this->membership = new Application_Model_Membership(); - $membershipMapper->find($_SESSION['membershipID'],$this->membership); - } + $membershipMapper->find($userIDsNamespace['membershipID'],$this->membership); + } - public function indexAction() - { - // TODO: ACL: is he allowed to see the pools of a group - - $result = $this->_request->getParam('deleteresult'); + public function indexAction() + { + // TODO: ACL: is he allowed to see the pools of a group + + $result = $this->_request->getParam('deleteresult'); if($result != ""){ $pbsNotifier = new Pbs_Notifier(); $this->view->notification = $pbsNotifier->notify('delete',$result); @@ -44,90 +45,90 @@ class User_PoolController extends Zend_Controller_Action $pbsNotifier = new Pbs_Notifier(); $this->view->notification = $pbsNotifier->notify('unlink',$result); } - + // get all pools from this group - $poolMapper = new Application_Model_PoolMapper(); - $pools = $poolMapper->findBy('groupID',$this->membership->getGroupID()); - foreach($pools as $pool){ + $poolMapper = new Application_Model_PoolMapper(); + $pools = $poolMapper->findBy('groupID',$this->membership->getGroupID()); + foreach($pools as $pool){ $ff = new Application_Model_Pool(); $ff->setOptions($pool); $ff->setID($pool['poolID']); $yourpools[] = $ff; } - $this->view->pools = $yourpools; - + $this->view->pools = $yourpools; + // Get all Clients from this group $clientmapper = new Application_Model_ClientMapper(); $clientsArray = $clientmapper->findBy('groupID',$this->membership->getGroupID()); - + // Get all assigned Clients $assignedclientmapper = new Application_Model_PoolEntriesMapper(); $assignedclients = $assignedclientmapper->fetchAll(); foreach($assignedclients as $c){ $assignedclientsArray[] = $c->toArray(); } - + // extract the un-assigned clients from the clientlist of the group $freeclients = $this->arrayDiff($clientsArray,$assignedclientsArray); - - - $this->view->freeclients = $freeclients; - } - public function createpoolAction() - { - // TODO: ACL: is he allowed to create a pool? - if (!isset($_POST["add"])){ - $addfilterform = new user_Form_Pool(array('buttontext' => 'Create Pool')); - $this->view->addpool = $addfilterform; + + $this->view->freeclients = $freeclients; + } + + public function createpoolAction() + { + // TODO: ACL: is he allowed to create a pool? + if (!isset($_POST["add"])){ + $addfilterform = new user_Form_Pool(array('buttontext' => 'Create Pool')); + $this->view->addpool = $addfilterform; }else { $addpoolform = new user_Form_Pool(array('buttontext' => 'Create Pool'),$_POST); - if ($addpoolform->isValid($_POST)) { + if ($addpoolform->isValid($_POST)) { try{ $pool = new Application_Model_Pool($_POST); $pool->setGroupID($this->membership->getGroupID()); $poolmapper = new Application_Model_PoolMapper(); $poolmapper->save($pool); $this->_redirect('/dev/pool/index/addresult/ok'); - }catch (Zend_Exception $e) { - echo "Error message 2: " . $e->getMessage() . "\n"; - $this->_redirect('/dev/pool/index/addresult/error'); - } + }catch (Zend_Exception $e) { + echo "Error message 2: " . $e->getMessage() . "\n"; + $this->_redirect('/dev/pool/index/addresult/error'); + } } - $this->view->addpool = $addpoolform; + $this->view->addpool = $addpoolform; } - } + } - public function deletepoolAction() - { - $poolID = $this->_request->getParam('poolID'); + public function deletepoolAction() + { + $poolID = $this->_request->getParam('poolID'); // TODO: ACL: is he allowed to delete a pool? #if( he is allowed){ - if(is_numeric($poolID)){ - $poolmapper = new Application_Model_PoolMapper(); - $pool = new Application_Model_Pool(); - $poolmapper->find($poolID,$pool); - if($this->membership->getGroupID() == $pool->getGroupID()){ - $deletepool = new Application_Model_Pool(); - $deletepool->setID($poolID); - $poolmapper->delete($deletepool); - $this->_redirect('/user/pool/index/deleteresult/ok'); - } - else{ - $this->_redirect('/user/pool/index/deleteresult/forbidden'); - } - } - $this->_redirect('/user/pool/index/deleteresult/error'); + if(is_numeric($poolID)){ + $poolmapper = new Application_Model_PoolMapper(); + $pool = new Application_Model_Pool(); + $poolmapper->find($poolID,$pool); + if($this->membership->getGroupID() == $pool->getGroupID()){ + $deletepool = new Application_Model_Pool(); + $deletepool->setID($poolID); + $poolmapper->delete($deletepool); + $this->_redirect('/user/pool/index/deleteresult/ok'); + } + else{ + $this->_redirect('/user/pool/index/deleteresult/forbidden'); + } + } + $this->_redirect('/user/pool/index/deleteresult/error'); #}else{ # $this->_redirect('/user/'); #} - } + } - public function editpoolAction() - { - // TODO: ACL: is he allowed to edit a pool? - if (!isset($_POST["add"])){ - $poolID = $this->_request->getParam('poolID'); + public function editpoolAction() + { + // TODO: ACL: is he allowed to edit a pool? + if (!isset($_POST["add"])){ + $poolID = $this->_request->getParam('poolID'); $pool = new Application_Model_Pool(); $poolmapper = new Application_Model_PoolMapper(); $poolmapper->find($poolID,$pool); @@ -139,55 +140,55 @@ class User_PoolController extends Zend_Controller_Action } else{ $this->_redirect('/user/pool/index/modifyresult/forbidden'); - } + } }else { $editpoolform = new user_Form_Pool(array('buttontext' => 'Edit Pool'),$_POST); - if ($editpoolform->isValid($_POST)) { + if ($editpoolform->isValid($_POST)) { try{ $poolmapper = new Application_Model_PoolMapper(); $poolID = $this->_request->getParam('poolID'); $pooldb = new Application_Model_Pool(); $poolmapper->find($poolID,$pooldb); print_a($pooldb->getGroupID(), $this->membership->getGroupID()); - if($pooldb->getGroupID() == $this->membership->getGroupID()){ + if($pooldb->getGroupID() == $this->membership->getGroupID()){ $pool = new Application_Model_Pool($_POST); - $pool->setID($poolID); - $pool->setGroupID($this->membership->getGroupID()); + $pool->setID($poolID); + $pool->setGroupID($this->membership->getGroupID()); $poolmapper->save($pool); - $this->_redirect('/user/pool/index/modifyresult/ok'); - } + $this->_redirect('/user/pool/index/modifyresult/ok'); + } else{ $this->_redirect('/user/pool/index/modifyresult/forbidden'); - } - }catch (Zend_Exception $e) { - echo "Error message 2: " . $e->getMessage() . "\n"; - $this->_redirect('/user/pool/index/modifyresult/error'); - } + } + }catch (Zend_Exception $e) { + echo "Error message 2: " . $e->getMessage() . "\n"; + $this->_redirect('/user/pool/index/modifyresult/error'); + } } $this->view->editpool = $editpoolform; } - } + } - public function linkclientAction() - { - $clientID = $this->_request->getParam('clientID'); + public function linkclientAction() + { + $clientID = $this->_request->getParam('clientID'); $poolID = $this->_request->getParam('poolID'); - + // TODO: ACL: Is he allowed to link clients to pools? if(!isset($_POST['clientID']) && ($clientID == '')){ $clientmapper = new Application_Model_ClientMapper(); - $clients = $clientmapper->findBy('groupID',$this->membership->getGroupID()); + $clients = $clientmapper->findBy('groupID',$this->membership->getGroupID()); $assignedclientmapper = new Application_Model_PoolEntriesMapper(); $assignedclients = $assignedclientmapper->fetchAll(); foreach($assignedclients as $c){ $assignedclientsArray[] = $c->toArray(); - } + } $freeclients = $this->arrayDiff($clients,$assignedclientsArray); - - $poolclient = new user_Form_PoolClient(array('buttontext' => 'Link Client','clients'=> $freeclients)); + + $poolclient = new user_Form_PoolClient(array('buttontext' => 'Link Client','clients'=> $freeclients)); $this->view->poolclient = $poolclient; - }else { - $poolclient = new dev_Form_PoolClient(array('buttontext' => 'Link Client'),$_POST); + }else { + $poolclient = new dev_Form_PoolClient(array('buttontext' => 'Link Client'),$_POST); try{ $poolID = $this->_request->getParam('poolID'); $poolmapper = new Application_Model_PoolMapper(); @@ -195,49 +196,49 @@ class User_PoolController extends Zend_Controller_Action $poolmapper->find($poolID,$pooldb); $clientmapper = new Application_Model_ClientMapper(); $clientdb = new Application_Model_Client(); - $clientmapper->find($clientID,$clientdb); - + $clientmapper->find($clientID,$clientdb); + if($pooldb->getGroupID() == $this->membership->getGroupID() && $clientdb->getGroupID() == $this->membership->getGroupID()){ - $poolentriesmapper = new Application_Model_PoolEntriesMapper(); + $poolentriesmapper = new Application_Model_PoolEntriesMapper(); $poolentry = new Application_Model_PoolEntries($_POST); $poolentry->setPoolID($poolID); if($poolentry->getClientID() == ''){ $poolentry->setClientID($clientID); - } + } $poolentriesmapper->save($poolentry); - $this->_redirect('/user/pool/index/linkresult/ok'); + $this->_redirect('/user/pool/index/linkresult/ok'); } else{ - $this->_redirect('/user/pool/index/linkresult/forbidden'); - } - }catch (Zend_Exception $e) { - echo "Error message 2: " . $e->getMessage() . "\n"; - $this->_redirect('/user/pool/index/linkresult/error'); - } - $this->view->poolclient = $poolclient; + $this->_redirect('/user/pool/index/linkresult/forbidden'); + } + }catch (Zend_Exception $e) { + echo "Error message 2: " . $e->getMessage() . "\n"; + $this->_redirect('/user/pool/index/linkresult/error'); + } + $this->view->poolclient = $poolclient; } - } + } - public function unlinkclientAction() - { - $poolentriesID = $this->_request->getParam('poolentriesID'); - - // TODO: ACL: Is he allowed to unlink clients from pools? - if(is_numeric($poolentriesID)){ - $poolentriesMapper = new Application_Model_PoolEntriesMapper(); - $poolentry = new Application_Model_PoolEntries(); - $poolentriesMapper->find($poolentriesID,$poolentry); - $clientMapper = new Application_Model_ClientMapper(); - $client = new Application_Model_Client(); - - $poolMapper = new Application_Model_PoolMapper(); - $pool = new Application_Model_Pool(); - - $clientMapper->find($poolentry->getClientID(),$client); - $poolMapper->find($poolentry->getPoolID(),$pool); - - - if($pool->getGroupID() == $this->membership->getGroupID() && $client->getGroupID() == $this->membership->getGroupID()){ + public function unlinkclientAction() + { + $poolentriesID = $this->_request->getParam('poolentriesID'); + + // TODO: ACL: Is he allowed to unlink clients from pools? + if(is_numeric($poolentriesID)){ + $poolentriesMapper = new Application_Model_PoolEntriesMapper(); + $poolentry = new Application_Model_PoolEntries(); + $poolentriesMapper->find($poolentriesID,$poolentry); + $clientMapper = new Application_Model_ClientMapper(); + $client = new Application_Model_Client(); + + $poolMapper = new Application_Model_PoolMapper(); + $pool = new Application_Model_Pool(); + + $clientMapper->find($poolentry->getClientID(),$client); + $poolMapper->find($poolentry->getPoolID(),$pool); + + + if($pool->getGroupID() == $this->membership->getGroupID() && $client->getGroupID() == $this->membership->getGroupID()){ $deletepoolentries = new Application_Model_PoolEntries(); $deletepoolentries->setID($poolentriesID); $deletepoolentriesmapper = new Application_Model_PoolEntriesMapper(); @@ -251,12 +252,12 @@ class User_PoolController extends Zend_Controller_Action else{ $this->_redirect('/user/pool/index/unlinkresult/error'); } - } - - // creates an array of two arrays - // first parameter is the list of all clients - // second parameter is the list of clients which are already in a group - // return value is a list of all clients, which are in no group + } + + // creates an array of two arrays + // first parameter is the list of all clients + // second parameter is the list of clients which are already in a group + // return value is a list of all clients, which are in no group private function arrayDiff($a, $b){ foreach($a as $k1 => $i1){ foreach($b as $k2 => $i2){ |
