summaryrefslogblamecommitdiffstats
path: root/application/modules/user/controllers/ClientController.php
blob: d40e1b14930c49f6843b91c7da63a25f49915225 (plain) (tree)
1
2
3
4
5
6
7
8



                                                          
                            


                                               


                                                                                     



                                 
                                                    
                
                                                                                        



                                                                                           
                 










                                                                                           




                                                                                                   
        

     

                                     



                                                                     























                                                                                                                        



                                        

                                                                 












                                                                                                      
                         



                                                                                  

     
                                        






                                                                                  
                        













                                                                                                                  
                                


                                                                                                             
                                








                                                                                                                                
                                 




                                                                      

     


 





 
<?php

class User_ClientController extends Zend_Controller_Action
{
	private $membership;
    public function init()
    {
        /* Initialize action controller here */
           	$membershipMapper = new Application_Model_MembershipMapper();
        	$this->membership = new Application_Model_Membership();
        	$membershipMapper->find($_SESSION['membershipID'],$this->membership);
    }

    public function indexAction()
    {
        // TODO: ACL: is he authorized to see this ?
		
		// Get the Clients which booted with a bootiso of this group		
		$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);
		}
		$result = $this->_request->getParam('addresult');
		if($result != ""){
			$pbsNotifier = new Pbs_Notifier();
			$this->view->notification = $pbsNotifier->notify('create',$result);
		}
		
		$clientMapper = new Application_Model_ClientMapper();
		$clientsInGroup = $clientMapper->findBy('groupID',$this->membership->getGroupID());
		# print_a($clientsInGroup);
				
        $this->view->clients = $clientsInGroup;
        
    }

    public function addclientAction()
    {
        $mac = $this->_request->getParam('mac');
		$hh = $this->_request->getParam('hh');
		
		// TODO: ACL: is he authorized to create new clients?
		#if( he is allowed){
			if (!isset($_POST["add"])){
				$addclient = new user_Form_Client(array('buttontext' => 'Create Client'));    		
				$this->view->addclient = $addclient;		
			}
			else{
				$addclient = new user_Form_Client(array('buttontext' => 'Create Client'),$_POST);
				print_a($_POST);
				if ($addclient->isValid($_POST) || ($mac != '' && $hh != '') ) {	
					$client = new Application_Model_Client($_POST);
					$mac = ($mac!='')?$mac:$_POST['macadress'];
					$hh = ($hh!='')?$hh:$_POST['hardwarehash'];
					$client->setMacadress($mac);
					$client->setHardwarehash($hh);
					$client->setGroupID($this->membership->getGroupID());
					$clientmapper = new Application_Model_ClientMapper();
					$clientmapper->save($client);    			
					$this->_redirect('/user/client/addresult/ok');
				}
				$this->view->addclient = $addclient;
			}
		#}else{
		#	$this->_redirect('/user/');
		#}
    }

    public function removeclientAction()
    {
    	 $clientID = $this->_request->getParam('clientID');
		// TODO: ACL: is he authorized to delete clients?
		#if( he is allowed){
			$clientMapper = new Application_Model_ClientMapper();
			if(is_numeric($clientID)){
				$client = new Application_Model_Client();
				$clientMapper->find($clientID,$client);
				if($client->getGroupID() == $this->membership->getGroupID()){
					$clientMapper = new Application_Model_ClientMapper();
					$clientMapper->delete($client);
					$this->_redirect('/user/client/index/deleteresult/ok');
				}
				else{
					$this->_redirect('/user/client/index/deleteresult/forbidden');
				}
			}
			$this->_redirect('/user/client/index/deleteresult/error');
		#}else{
		#	$this->_redirect('/user/');
		#}
    }

    public function editclientAction(){	
		// TODO: ACL: Is he authorized to edit clients ?	
		#if( he is allowed){	
			if (!isset($_POST["add"])){	
				$clientID = $this->_request->getParam('clientID');
				$client = new Application_Model_Client();
				$mapper = new Application_Model_ClientMapper();
				$mapper->find($clientID,$client);	
			
				if($client->getGroupID() == $this->membership->getGroupID()){			  
		   			$editclient = new user_Form_Client(array('buttontext' => 'Edit Client'));
					$editclient->populate($client->toArray());
		  	  		$this->view->editclient = $editclient;
		  	  	}
		  	  	else{
		  	  		$this->_redirect('/user/client/index/modifyresult/error');
		  	  	}
			}
			else{
				$editclient = new user_Form_Client(array('buttontext' => 'Edit Client'),$_POST);
				if ($editclient->isValid($_POST) || ($mac != '' && $hh != '') ) {	
					$client = new Application_Model_Client($_POST);
					$client->setID($this->_request->getParam('clientID'));
				
					$dbclient = new Application_Model_Client();
					$clientMapper = new Application_Model_ClientMapper();
					$clientMapper->find($this->_request->getParam('clientID'),$dbclient);
				
					if($dbclient->getGroupID() == $this->membership->getGroupID()){				
						$client->setGroupID($this->membership->getGroupID());
						$clientmapper = new Application_Model_ClientMapper();
						$clientmapper->save($client);
						$this->_redirect('/user/client/index/modifyresult/ok');
					}
					else{
						$this->_redirect('/user/client/index/modifyresult/error');
					}
				}
				$this->view->editclient = $editclient;
			}
		#}else{
		#	$this->_redirect('/user/');
		#}
    }


}