summaryrefslogtreecommitdiffstats
path: root/application/controllers/PersonController.php
diff options
context:
space:
mode:
authorBjörn Geiger2011-08-08 16:27:29 +0200
committerBjörn Geiger2011-08-08 16:27:29 +0200
commit2ae25af3ff1cfa5c586c9cc3339d576ede22ebc2 (patch)
treec9072a9bbe3b7ed90a7519fcab94a6f9bd0de5d3 /application/controllers/PersonController.php
parentMembership aus der Poolctrl Datenbank entfernt (diff)
downloadpoolctrl-2ae25af3ff1cfa5c586c9cc3339d576ede22ebc2.tar.gz
poolctrl-2ae25af3ff1cfa5c586c9cc3339d576ede22ebc2.tar.xz
poolctrl-2ae25af3ff1cfa5c586c9cc3339d576ede22ebc2.zip
verschiedene Änderungen
Diffstat (limited to 'application/controllers/PersonController.php')
-rw-r--r--application/controllers/PersonController.php154
1 files changed, 77 insertions, 77 deletions
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;
}