summaryrefslogblamecommitdiffstats
path: root/application/modules/user/controllers/ConfigController.php
blob: b27197407d0300319b0f4fd9a35dcc6fc08bb835 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11
     









                                                                           
 
                                                          

 
                                



                                         


                                    
                          
                        



                                                              



                                                                                  
                                
                                                                                   
                                                                                                


                                                                                                           
 
                                                                       
                                
                                                                        


                                                                    

                                                                
 


                                                                 













                                                                                           


                                                           
                                            

                                                                                
                
                                                                           






                                                                                             

                                                                       













                                                                                                                                                                                                     
                      


                                                                                       

                                              







                                                                                                      
                                                                                      
                                                                                                                                                                                                   
                                                                                                

                                                                                                                                                                                                   
                                                              
                                                                                                                                                                                                                     
                                                                                                

                                                                                                                                                                                                                     
                                                                
                                                         





                                                                                                                                                  
                                                                                      
                                                                                                                                                                                                   
                                                                                                

                                                                                                                                                                                                   
                                                               
                                                                                                                                                                                                                     
                                                                                                

                                                                                                                                                                                                                     
                                                         













                                                                                                                                                  
                                                    
                                                                                                                                     

                        
                                                   

                         


                                                              
                                                
                                               
                                  
                                                                         

                                                                                           
                 
                                                                  



                                                   
                                                                 
                                                                               
                                                                                                                                                 
                                                                     
 
                                                                    
                                                                                



                                       
                                                                                                      
         
 



                                                                             
                                                                                                                             
 




                                                                                                                                








                                                                                                                                              
                                                                
                                        






                                                                                                                 
                                    
                                                                                                                                         















                                                                                                                                         

























                                                                                                                            









                                                                                                                                       
                

         





















                                                                                                                                                                                     
                                                                                                                               








































































                                                                                                                                                                                      
                                

                                                                    

                                                                                                                                           
                                                                                                                               






















































                                                                                                                                                   




                                                                                                                        
                






























                                                                                                                                                   
                                                                                
 






                                                                                                            
                                    
                                                                                                                                            


                                                          
                                                                                      





















































                                                                                                                                                



 





 
<?php
/*
 * Copyright (c) 2011 - OpenSLX GmbH, RZ Uni Freiburg
 * This program is free software distributed under the GPL version 2.
 * See http://gpl.openslx.org/
 *
 * If you have any feedback please consult http://feedback.openslx.org/ and
 * send your suggestions, praise, or complaints to feedback@openslx.org
 *
 * General information about OpenSLX can be found at http://openslx.org/
 */

class user_ConfigController extends Zend_Controller_Action
{

	protected $configMapper;
	protected $bootosMapper;
	protected $bootosuserMapper;
	protected $bootmenuMapper;
	protected $bootmenuentriesMapper;
	protected $membershipMapper;
	protected $membership;
	protected $page;
	protected $config;
	protected $type;

	public function init()
	{
		if (Zend_Auth::getInstance()->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) . "<br/>";
					echo "Message: " . $e->getMessage() . "<br/>";
					$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) . "<br/>";
					echo "Message: " . $e->getMessage() . "<br/>";
					$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) . "<br/>";
					echo "Message: " . $e->getMessage() . "<br/>";
					$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) . "<br/>";
			echo "Message: " . $e->getMessage() . "<br/>";
			$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) . "<br/>";
					echo "Message: " . $e->getMessage() . "<br/>";
					$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) . "<br/>";
			echo "Message: " . $e->getMessage() . "<br/>";
			$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');
	}


}