summaryrefslogtreecommitdiffstats
path: root/application/modules/user/controllers/ClientController.php
diff options
context:
space:
mode:
Diffstat (limited to 'application/modules/user/controllers/ClientController.php')
-rw-r--r--application/modules/user/controllers/ClientController.php390
1 files changed, 190 insertions, 200 deletions
diff --git a/application/modules/user/controllers/ClientController.php b/application/modules/user/controllers/ClientController.php
index 76419a8..40c8c73 100644
--- a/application/modules/user/controllers/ClientController.php
+++ b/application/modules/user/controllers/ClientController.php
@@ -1,203 +1,193 @@
-<?php
+<? 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_ClientController extends Zend_Controller_Action
-{
- private $membership;
- protected $page;
-
- public function init()
- {
- if (Zend_Auth::getInstance()->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;
- }
- }
+* 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_ClientController extends Zend_Controller_Action {
+ private $membership;
+ protected $page;
+
+ public function init() {
+ if (Zend_Auth::getInstance()->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;
+ }
+ }
}