diff options
| author | michael pereira | 2011-04-10 21:05:24 +0200 |
|---|---|---|
| committer | michael pereira | 2011-04-10 21:05:24 +0200 |
| commit | ce62cf823e40aaf60389a28520390c9373cb3253 (patch) | |
| tree | c4d027e88ea39ecf8d4f6717d7fe6d0f3cec2d4a /application/modules/user/controllers/ConfigController.php | |
| parent | kcl fixed (diff) | |
| download | pbs2-ce62cf823e40aaf60389a28520390c9373cb3253.tar.gz pbs2-ce62cf823e40aaf60389a28520390c9373cb3253.tar.xz pbs2-ce62cf823e40aaf60389a28520390c9373cb3253.zip | |
Config Own/Group getrennt
Diffstat (limited to 'application/modules/user/controllers/ConfigController.php')
| -rw-r--r-- | application/modules/user/controllers/ConfigController.php | 86 |
1 files changed, 49 insertions, 37 deletions
diff --git a/application/modules/user/controllers/ConfigController.php b/application/modules/user/controllers/ConfigController.php index 1af05cc..df32385 100644 --- a/application/modules/user/controllers/ConfigController.php +++ b/application/modules/user/controllers/ConfigController.php @@ -8,6 +8,7 @@ class user_ConfigController extends Zend_Controller_Action protected $membership; protected $page; protected $config; + protected $type; public function init() { @@ -24,6 +25,11 @@ class user_ConfigController extends Zend_Controller_Action $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'); } @@ -54,16 +60,18 @@ class user_ConfigController extends Zend_Controller_Action $this->_redirect('/user/index'); $this->configMapper = new Application_Model_ConfigMapper(); - - if(Pbs_Acl::checkRight('csai')){ - $this->view->configlist = $this->configMapper->findBy(array('groupID' => $this->membership->getGroupID())); - }else{ + + if($this->type =='own' && Pbs_Acl::checkRight('csui')){ + $this->view->type = 'own'; $this->view->configlist = $this->configMapper->findBy(array('membershipID' => $this->membership->getID())); - } - + }else{ + $this->view->type = 'group'; + $this->view->configlist = $this->configMapper->findBy(array('groupID' => $this->membership->getGroupID())); + } + foreach ($this->view->configlist as $config){ $config->setCreated(date(Zend_Registry::get('dateformat'),$config->getCreated())); - } + } // Search $search = $this->_request->getParam('search'); @@ -78,10 +86,10 @@ class user_ConfigController extends Zend_Controller_Action // Pagination $pagination = new Pbs_Pagination(); - $pagination->setPerPage(2); + $pagination->setPerPage(4); $pagination->setElement($this->view->configlist); $pagination->setRequestPage($this->_request->getParam('page')); - $pagination->setPageUrl('/user/config/index'.((isset($this->view->search))?'/search/'.$this->view->search:'')); + $pagination->setPageUrl('/user/config/index/type/'.$this->type.((isset($this->view->search))?'/search/'.$this->view->search:'')); $this->view->configlist = $pagination->getElements(); $this->view->pagination = $pagination->pagination($pageurl); @@ -90,14 +98,14 @@ class user_ConfigController extends Zend_Controller_Action } public function searchAction(){ - $this->_redirect('/user/config/index/search/'.($_GET['search'])); + $this->_redirect('/user/config/index/type/'.$this->type.'/search/'.($_GET['search'])); } public function createconfigAction() { //ACL Darf er Configs erstellen? - if(!Pbs_Acl::checkRight('cc')) - $this->_redirect('/user/config/index/page/'.$this->page.'/addresult/forbidden'); + if(!Pbs_Acl::checkRight('cc') && !Pbs_Acl::checkRight('cco')) + $this->_redirect('/user/config/index/type/'.$this->type.'/page/'.$this->page.'/addresult/forbidden'); if (!isset($_POST["createconfig"])){ $configForm = new user_Form_Config(array('action' => 'createconfig','page'=>$this->page)); @@ -109,20 +117,22 @@ class user_ConfigController extends Zend_Controller_Action $config = new Application_Model_Config($_POST); $config->setCreated(time()); - if(Pbs_Acl::checkRight('csai')) + if(Pbs_Acl::checkRight('cc') && $this->_request->getParam('type') == 'group') $config->setGroupID($this->membership->getGroupID()); - else + elseif(Pbs_Acl::checkRight('cco') && $this->_request->getParam('type') == 'own') $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) . "<br/>"; echo "Message: " . $e->getMessage() . "<br/>"; - $this->_redirect('/user/config/index/page/'.$this->page.'/addresult/error'); + $this->_redirect('/user/config/index/type/'.$this->type.'/page/'.$this->page.'/addresult/error'); } - $this->_redirect('/user/config/index/page/'.$this->page.'/addresult/ok'); + $this->_redirect('/user/config/index/type/'.$this->type.'/page/'.$this->page.'/addresult/ok'); } } @@ -132,12 +142,12 @@ class user_ConfigController extends Zend_Controller_Action public function editconfigAction() { //ACL Darf er Configs editieren? - if(!Pbs_Acl::checkRight('ce') && !Pbs_Acl::checkRight('cem')) - $this->_redirect('/user/config/index/page/'.$this->page.'/modifyresult/forbidden'); + 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/page/'.$this->page.'/modifyresult/error'); + $this->_redirect('/user/config/index/type/'.$this->type.'/page/'.$this->page.'/modifyresult/error'); $groupID = $this->membership->getGroupID(); @@ -146,10 +156,10 @@ class user_ConfigController extends Zend_Controller_Action if($config->getMembershipID() != null){ if($this->membership->getID() != $config->getMembershipID()) - $this->_redirect('/user/config/index/page/'.$this->page.'/modifyresult/forbidden'); + $this->_redirect('/user/config/index/type/'.$this->type.'/page/'.$this->page.'/modifyresult/forbidden'); }else{ if($this->membership->getGroupID() != $config->getGroupID()) - $this->_redirect('/user/config/index/page/'.$this->page.'/modifyresult/forbidden'); + $this->_redirect('/user/config/index/type/'.$this->type.'/page/'.$this->page.'/modifyresult/forbidden'); } if (!isset($_POST["editconfig"])){ @@ -167,17 +177,19 @@ class user_ConfigController extends Zend_Controller_Action $config = new Application_Model_Config($_POST); $config->setCreated(time()); - if(Pbs_Acl::checkRight('csai')) + if(Pbs_Acl::checkRight('ce') && $configold->getGroupID() != null) $config->setGroupID($this->membership->getGroupID()); - else + elseif(Pbs_Acl::checkRight('ceo') && $configold->getMembershipID() != null) $config->setMembershipID($this->membership->getID()); - + else + $this->_redirect('/user/config/index/type/'.$this->type.'/page/'.$this->page.'/modifyresult/error'); + $config->setID($configID); if($configold->getShellscript() != $config->getShellscript()){ //ACL Is he allowed to edit other than Metadata? if(!Pbs_Acl::checkRight('ce')) - $this->_redirect('/user/config/index/page/'.$this->page.'/modifyresult/forbidden'); + $this->_redirect('/user/config/index/type/'.$this->type.'/page/'.$this->page.'/modifyresult/forbidden'); } @@ -187,10 +199,10 @@ class user_ConfigController extends Zend_Controller_Action { echo "Caught exception: " . get_class($e) . "<br/>"; echo "Message: " . $e->getMessage() . "<br/>"; - $this->_redirect('/user/config/index/page/'.$this->page.'/modifyresult/error'); + $this->_redirect('/user/config/index/type/'.$this->type.'/page/'.$this->page.'/modifyresult/error'); } - $this->_redirect('/user/config/index/page/'.$this->page.'/modifyresult/ok'); + $this->_redirect('/user/config/index/type/'.$this->type.'/page/'.$this->page.'/modifyresult/ok'); } } @@ -201,23 +213,23 @@ class user_ConfigController extends Zend_Controller_Action public function deleteconfigAction() { //ACL Darf er Configs löschen? - if(!Pbs_Acl::checkRight('cd')) - $this->_redirect('/user/config/index/page/'.$this->page.'/deleteresult/forbidden'); + 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/page/'.$this->page.'/deleteresult/error'); + $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()) - $this->_redirect('/user/config/index/page/'.$this->page.'/deleteresult/forbidden'); + 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()) - $this->_redirect('/user/config/index/page/'.$this->page.'/deleteresult/forbidden'); + 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); @@ -225,9 +237,9 @@ class user_ConfigController extends Zend_Controller_Action }catch(Zend_Exception $e){ echo "Caught exception: " . get_class($e) . "<br/>"; echo "Message: " . $e->getMessage() . "<br/>"; - $this->_redirect('/user/config/index/page/'.$this->page.'/deleteresult/error'); + $this->_redirect('/user/config/index/type/'.$this->type.'/page/'.$this->page.'/deleteresult/error'); } - $this->_redirect('/user/config/index/page/'.$this->page.'/deleteresult/ok'); + $this->_redirect('/user/config/index/type/'.$this->type.'/page/'.$this->page.'/deleteresult/ok'); } |
