summaryrefslogblamecommitdiffstats
path: root/application/modules/dev/controllers/ClientController.php
blob: b6c202c52b76d96341e3c5998316b8efb0cbd8f3 (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 dev_ClientController extends Zend_Controller_Action
{

    public function init()
    {
        /* Initialize action controller here */
    }

    public function indexAction()
    {
        $clientMapper = new Application_Model_ClientMapper();
        $this->view->clients = $clientMapper->fetchAll();
    }

    public function addclientAction()
    {	
		$mac = $this->_request->getParam('mac');
		$hh = $this->_request->getParam('hh');
		
		$groupMapper = new Application_Model_GroupMapper();
		$groups = $groupMapper->fetchAll();
		#print_a($groups);die();

		if (!isset($_POST["add"])){
			$addclient = new dev_Form_Client(array('buttontext' => 'Create Client','groups'=>$groups));    		
			$this->view->addclient = $addclient;		
		}
		else{
			$addfilterform = new dev_Form_Client(array('buttontext' => 'Create Client','groups'=>$groups),$_POST);
			if ($addfilterform->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);
    			$clientmapper = new Application_Model_ClientMapper();
    			$clientmapper->save($client);
    			print_a('inserted');
				$this->_redirect('/dev/client');
    		}
			$this->view->addclient = $addclient;
		}
    }

    public function removeclientAction()
    {
        $clientID = $this->_request->getParam('clientID');
        		// TODO: ACL implementieren ob er den filter löschen darf
        		if(is_numeric($clientID)){
        			$removeClient = new Application_Model_Client();
        			$removeClient->setID($clientID);
        			$clientMapper = new Application_Model_ClientMapper();
        			$clientMapper->delete($removeClient);
        		}
        		$this->_redirect('/dev/client');
    }

    public function editclientAction()
    {
		$groupMapper = new Application_Model_GroupMapper();
		$groups = $groupMapper->fetchAll();
		# print_a($this);die();
		
		if (!isset($_POST["add"])){	
			$clientID = $this->_request->getParam('clientID');
			$data = new Application_Model_Client();
			$mapper = new Application_Model_ClientMapper();
			$mapper->find($clientID,$data);	

       		$editclient = new dev_Form_Client(array('buttontext' => 'Edit Client', 'groups'=>$groups));
			$editclient->populate($data->toArray());
      	  	$this->view->editclient = $editclient;
		}
		else{
			$editclient = new dev_Form_Client(array('buttontext' => 'Edit Client','groups'=>$groups),$_POST);
			if ($editclient->isValid($_POST) || ($mac != '' && $hh != '') ) {	
    			$client = new Application_Model_Client($_POST);
				$client->setID($this->_request->getParam('clientID'));
    			$clientmapper = new Application_Model_ClientMapper();
    			$clientmapper->save($client);
    			print_a('updated');
				$this->_redirect('/dev/client');
    		}
			$this->view->editclient = $editclient;
		}
    }


}