summaryrefslogtreecommitdiffstats
path: root/application/modules/user/controllers/ConfigController.php
diff options
context:
space:
mode:
authormichael pereira2011-04-10 21:05:24 +0200
committermichael pereira2011-04-10 21:05:24 +0200
commitce62cf823e40aaf60389a28520390c9373cb3253 (patch)
treec4d027e88ea39ecf8d4f6717d7fe6d0f3cec2d4a /application/modules/user/controllers/ConfigController.php
parentkcl fixed (diff)
downloadpbs2-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.php86
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');
}