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; } } }