hasIdentity()) { $userIDsNamespace = Zend_Session::namespaceGet('userIDs'); if($userIDsNamespace['membershipID'] ==''){ $pbsNotifier = new Pbs_Notifier(); echo $pbsNotifier->notify('No membershipID set','forbidden'); } /* Initialize action controller here */ $membershipMapper = new Application_Model_MembershipMapper(); $this->membership = new Application_Model_Membership(); $membershipMapper->find($userIDsNamespace['membershipID'],$this->membership); } else { $this->_helper->redirector('login', 'auth'); } $this->page = $this->_request->getParam('page'); } public function indexAction() { // ACL: is he authorized to see this ? if(!Pbs_Acl::checkRight('clo')) $this->_redirect('/user'); // 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(array('groupID' => $this->membership->getGroupID()),true); // Search $search = $this->_request->getParam('search'); $mySearch = new Pbs_Search(); $mySearch->setSearchTerm($search); $mySearch->setModule('client'); if($search != ''){ $this->view->search = $mySearch->getSearchTerm(); $clientsInGroup = $mySearch->search($clientsInGroup); } $this->view->searchform = $mySearch->searchForm(); // Format Time-String foreach($clientsInGroup as $k=>$cig){ $clientsInGroup[$k]['created'] = date(Zend_Registry::get('dateformat'),$cig['created']); } // Pagination $pagination = new Pbs_Pagination(); $pagination->setPerPage(10) ->setElement($clientsInGroup) ->setRequestPage($this->_request->getParam('page')) ->setPageUrl('/user/client/index'.((isset($this->view->search))?'/search/'.$this->view->search:'')); $clientsInGroup = $pagination->getElements(); $this->view->pagination = $pagination->pagination(); $this->view->page = $pagination->getRequestPage(); $this->view->clients = $clientsInGroup; } public function searchAction(){ $this->_redirect('/user/client/index/search/'.($_GET['search'])); } public function addclientAction() { $mac = $this->_request->getParam('mac'); $hh = $this->_request->getParam('hh'); // ACL: is he authorized to create new clients? if(!Pbs_Acl::checkRight('cla')) $this->_redirect('/user'); if (!isset($_POST["add"])){ $addclient = new user_Form_Client(array( 'buttontext' => 'Create Client', 'page' => $this->page)); $this->view->addclient = $addclient; } else{ $addclient = new user_Form_Client(array( 'buttontext' => 'Create Client', 'page' => $this->page),$_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) ->setHardwarehash($hh) ->setCreated(time()) ->setGroupID($this->membership->getGroupID()); $clientmapper = new Application_Model_ClientMapper(); $clientmapper->save($client); $this->_redirect('/user/client/index/addresult/ok'); } $this->view->addclient = $addclient; } } public function removeclientAction() { $clientID = $this->_request->getParam('clientID'); // ACL: is he authorized to delete clients? if(!Pbs_Acl::checkRight('cld')) $this->_redirect('/user'); $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/page/'.$this->page.'/deleteresult/ok'); } else{ $this->_redirect('/user/client/index/page/'.$this->page.'/deleteresult/forbidden'); } } $this->_redirect('/user/client/index/page/'.$this->page.'/deleteresult/error'); } public function editclientAction(){ // ACL: Is he authorized to edit clients ? if(!Pbs_Acl::checkRight('cle')) $this->_redirect('/user'); 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', 'page' => $this->page)); $editclient->populate($client->toArray()); $this->view->editclient = $editclient; } else{ $this->_redirect('/user/client/index/page/'.$this->page.'/modifyresult/error'); } } else{ $editclient = new user_Form_Client(array( 'buttontext' => 'Edit Client', 'page' => $this->page),$_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); $client->setCreated($dbclient->getCreated()); if($dbclient->getGroupID() == $this->membership->getGroupID()){ $client->setGroupID($this->membership->getGroupID()); $clientmapper = new Application_Model_ClientMapper(); $clientmapper->save($client); $this->_redirect('/user/client/index/page/'.$this->page.'/modifyresult/ok'); } else{ $this->_redirect('/user/client/index/page/'.$this->page.'/modifyresult/error'); } } $this->view->editclient = $editclient; } } }