From 2ae25af3ff1cfa5c586c9cc3339d576ede22ebc2 Mon Sep 17 00:00:00 2001 From: Björn Geiger Date: Mon, 8 Aug 2011 16:27:29 +0200 Subject: verschiedene Änderungen --- application/controllers/PersonController.php | 154 +++++++++++++-------------- 1 file changed, 77 insertions(+), 77 deletions(-) (limited to 'application/controllers/PersonController.php') diff --git a/application/controllers/PersonController.php b/application/controllers/PersonController.php index b89b4bf..68fb93e 100644 --- a/application/controllers/PersonController.php +++ b/application/controllers/PersonController.php @@ -27,60 +27,63 @@ class PersonController extends Zend_Controller_Action $this->config = $bootstrap->getOptions(); $this->pbs2host = $this->config['pbs2']['host']; $this->userIDsNamespace = Zend_Session::namespaceGet('userIDs'); - $this->currentMembership = new Application_Model_Membership(); - $this->person = new Application_Model_Person(); + foreach(Zend_Session::namespaceGet('persons') as $person) { + if($person->getID() == $this->userIDsNamespace['personID']) { + $this->person = $person; + break; + } + } foreach(Zend_Session::namespaceGet('memberships') as $membershipArray) { $membership = new Application_Model_Membership($membershipArray); $membership->setID($membershipArray['membershipID']); $this->memberships[$membership->getID()] = $membership; } - if(count($this->userIDsNamespace)) { - $membershipID = $this->userIDsNamespace['membershipID']; - $membershipApiResult = PostToHost($this->pbs2host, $this->config['pbs2']['getmembership'] . $userIDsNamespace['apikey'], 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', ''); - $membershipXMLString = $membershipApiResult['http-body']; - if(strlen($membershipXMLString) > 0) { - $membershipXML = new SimpleXMLElement($membershipXMLString); - $membership = new Application_Model_Membership(); - $membership->setID(sprintf("%s", $membershipXML->membership->id)); - $membership->setGroupID(sprintf("%s", $membershipXML->membership->groupid)); - $membership->setPersonID(sprintf("%s", $membershipXML->membership->personid)); - $membership->setRoleID(sprintf("%s", $membershipXML->membership->roleid)); - $membership->setSuspend(sprintf("%s", $membershipXML->membership->suspend)); - $membership->setApikey(sprintf("%s", $membershipXML->membership->apikey)); - - $personApiResult = PostToHost($this->pbs2host, $this->config['pbs2']['getperson'] . $this->currentMembership->getApikey(), 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', ''); - $personXMLString = $personApiResult['http-body']; - if(strlen($personXMLString) > 0) { - $personXML = new SimpleXMLElement($personXMLString); - $this->person->setID(sprintf("%s", $personXML->person->id)); - $this->person->setCity(sprintf("%s", $personXML->person->city)); - $this->person->setEmail(sprintf("%s", $personXML->person->email)); - $this->person->setFirstname(sprintf("%s", $personXML->person->firstname)); - $this->person->setHousenumber(sprintf("%s", $personXML->person->housenumber)); - $this->person->setLogin(sprintf("%s", $personXML->person->login)); - $this->person->setLogindate(sprintf("%s", $personXML->person->logindate)); - $this->person->setName(sprintf("%s", $personXML->person->name)); - $this->person->setPostalcode(sprintf("%s", $personXML->person->postalcode)); - $this->person->setRegisterdate(sprintf("%s", $personXML->person->registerdate)); - $this->person->setStreet(sprintf("%s", $personXML->person->street)); - $this->person->setSuspend(sprintf("%s", $personXML->person->suspend)); - $this->person->setTitle(sprintf("%s", $personXML->person->title)); + if(count($this->memberships) > 0) { + if(isset($this->userIDsNamespace['membershipID'])) { + $membershipID = $this->userIDsNamespace['membershipID']; + $personNamesapce = Zend_Session::namespaceGet('memberships'); + if($membershipID) { + $this->currentMembership = $this->memberships[$membershipID]; } } - } - - if(count($this->memberships) > 0) { + if(count(Zend_Session::namespaceGet('groups')) > 0) { + $useGroupnamespace = true; + foreach(Zend_Session::namespaceGet('groups') as $group) { + $groups[$group->getID()] = $group; + } + } else { + $groupSession = new Zend_Session_Namespace('groups'); + } + if(count(Zend_Session::namespaceGet('roles')) > 0) { + $useRolenamespace = true; + foreach(Zend_Session::namespaceGet('roles') as $role) { + $roles[$role->getID()] = $role; + } + } else { + $roleSession = new Zend_Session_Namespace('roles'); + } foreach($this->memberships as $membership) { - $grouprequest = "groupid=" . $membership->getGroupID(); - $groupApiResult = PostToHost($this->pbs2host, $this->config['pbs2']['getgroup'] . $membership->getApikey(), 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', $grouprequest); - $groupXMLString = $groupApiResult['http-body']; - if(strlen($groupXMLString) > 0) { - $groupXML = new SimpleXMLElement($groupXMLString); - $group = new Application_Model_Group(); - $group->setID(sprintf("%s", $groupXML->group->id)); - $group->setTitle(sprintf("%s", $groupXML->group->title)); - $group->setDescription(sprintf("%s", $groupXML->group->description)); + $groupID = $membership->getGroupID(); + if($useGroupnamespace) { + $group = $groups[$groupID]; + } else { + $grouprequest = "groupid=" . $groupID; + $groupApiResult = PostToHost($this->pbs2host, $this->config['pbs2']['getgroup'] . $membership->getApikey(), 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', $grouprequest); + $groupXMLString = $groupApiResult['http-body']; + if(strlen($groupXMLString) > 0) { + $groupXML = new SimpleXMLElement($groupXMLString); + $group = new Application_Model_Group(); + $group->setID(sprintf("%s", $groupXML->group->id)); + $group->setTitle(sprintf("%s", $groupXML->group->title)); + $group->setDescription(sprintf("%s", $groupXML->group->description)); + $groupSession->$groupID = $group; + } + } + $roleID = $membership->getRoleID(); + if($useRolenamespace) { + $role = $roles[$roleID]; + } else { $roleApiResult = PostToHost($this->pbs2host, $this->config['pbs2']['getrole'] . $membership->getApikey(), 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', ''); $roleXMLString = $roleApiResult['http-body']; if(strlen($roleXMLString) > 0) { @@ -92,17 +95,18 @@ class PersonController extends Zend_Controller_Action $role->setDescription(sprintf("%s", $roleXML->role->description)); $role->setInheritance(sprintf("%s", $roleXML->role->inheritance)); - $apikeys[$group->getID()] = $membership->getApikey(); - $this->groups[] = array ( + $roleSession->$roleID = $role; + } + } + $apikeys[$group->getID()] = $membership->getApikey(); + $this->groups[$group->getID()] = array ( 'groupID' => $group->getID(), 'title' => $group->getTitle(), 'description' => $group->getDescription(), 'membershipID' => $membership->getID(), 'role' => $role->getTitle() - ); - $this->view->apikeys = $apikeys; - } - } + ); + $this->view->apikeys = $apikeys; } } } else { @@ -118,7 +122,6 @@ class PersonController extends Zend_Controller_Action $pagination->setElement($this->groups); $pagination->setRequestPage($this->_request->getParam('page')); $pagination->setPageUrl('/person/index'); - $this->view->groups = $pagination->getElements(); $this->view->pagination = $pagination->pagination(); $this->view->page = $pagination->getRequestPage(); @@ -137,17 +140,16 @@ class PersonController extends Zend_Controller_Action $membership = $this->memberships[0]; $userSession = new Zend_Session_Namespace('userIDs'); $userSession->membershipID = $membership->getID(); - $userSession->personID = $membership->getPersonID(); $userSession->groupID = $membership->getGroupID(); $userSession->roleID = $membership->getRoleID(); $userSession->apikey = $membership->getApikey(); $this->_redirect('/'); + return; } elseif(count($this->memberships) > 1) { if(isset($_POST['selectmembership'])) { $membership = $this->memberships[$_POST['membershipID']]; $userSession = new Zend_Session_Namespace('userIDs'); $userSession->membershipID = $membership->getID(); - $userSession->personID = $membership->getPersonID(); $userSession->groupID = $membership->getGroupID(); $userSession->roleID = $membership->getRoleID(); $userSession->apikey = $membership->getApikey(); @@ -157,38 +159,34 @@ class PersonController extends Zend_Controller_Action if(isset($this->memberships)) { $suspendlist = array(); foreach($this->memberships as $membership) { - $grouprequest = "groupid=" . $membership->getGroupID(); - $groupApiResult = PostToHost($this->pbs2host, $this->config['pbs2']['getgroup'] . $membership->getApikey(), 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', $grouprequest); - $groupXMLString = $groupApiResult['http-body']; - if(strlen($groupXMLString) > 0) { - $groupXML = new SimpleXMLElement($groupXMLString); - $group = new Application_Model_Group(); - $group->setID(sprintf("%s", $groupXML->group->id)); - $group->setTitle(sprintf("%s", $groupXML->group->title)); - $group->setDescription(sprintf("%s", $groupXML->group->description)); - $supend = $membership->getSuspend(); - if($suspend == 0){ - $membershipList[] = array( + $groupData = $this->groups[$membership->getGroupID()]; + $group = new Application_Model_Group($groupData); + $group->setID($groupData['groupID']); + $roleTitle = $groupData['role']; + $suspend = $membership->getSuspend(); + if($suspend == 0){ + $membershipList[] = array( 'membershipID' => $membership->getID(), - 'group' => $group->getTitle() - ); - } - else{ - $suspendlist[] = array( + 'group' => $group->getTitle(), + 'role' => $roleTitle, + ); + } + else{ + $suspendlist[] = array( 'membershipID' => $membership->getID(), - 'group' => $group->getTitle() - ); - } - + 'group' => $group->getTitle(), + 'role' => $roleTitle, + ); } + if(count($suspendlist) >=1){ $poolNotifier = new Poolctrl_Notifier(); $this->view->notification = $poolNotifier->notify("Actually ".count($suspendlist)." Memberships are suspended", 'error' ); } } + $membershipSelectForm = new Application_Form_MembershipSelect(array('membershiplist' => $membershipList)); + $this->view->membershipSelectForm = $membershipSelectForm; } - $membershipSelectForm = new Application_Form_MembershipSelect(array('membershiplist' => $membershipList)); - $this->view->membershipSelectForm = $membershipSelectForm; } } else { $poolNotifier = new Poolctrl_Notifier(); @@ -201,6 +199,8 @@ class PersonController extends Zend_Controller_Action { $this->_helper-> viewRenderer-> setNoRender(); Zend_Session::namespaceUnset('userIDs'); + $userSession = new Zend_Session_Namespace('userIDs'); + $userSession->personID = $this->person->getID(); $this->_helper->redirector('selectmembership', 'person'); return; } -- cgit v1.2.3-55-g7522