summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBjörn Geiger2011-08-08 13:57:00 +0200
committerBjörn Geiger2011-08-08 13:57:00 +0200
commit7b153c00ebf7f930a6f412b31703c9be6dcfe10e (patch)
tree1853d8671cebdebdac1bb51b6ae6cf01c089ac3d
parentSearch Lib hinzugefügt (diff)
downloadpoolctrl-7b153c00ebf7f930a6f412b31703c9be6dcfe10e.tar.gz
poolctrl-7b153c00ebf7f930a6f412b31703c9be6dcfe10e.tar.xz
poolctrl-7b153c00ebf7f930a6f412b31703c9be6dcfe10e.zip
Membership nun auch über Api
-rw-r--r--application/controllers/AuthController.php5
-rw-r--r--application/controllers/EventController.php9
-rw-r--r--application/controllers/PersonController.php95
-rw-r--r--application/models/MembershipMapper.php151
4 files changed, 62 insertions, 198 deletions
diff --git a/application/controllers/AuthController.php b/application/controllers/AuthController.php
index e310fcf..d844415 100644
--- a/application/controllers/AuthController.php
+++ b/application/controllers/AuthController.php
@@ -56,7 +56,8 @@ class AuthController extends Zend_Controller_Action
$membership['roleID'] = sprintf("%s", $membershipXML->roleid);
$membership['apikey'] = sprintf("%s", $membershipXML->apikey);
$membership['suspend'] = sprintf("%s", $membershipXML->suspend);
- $membershipSession->$count = $membership;
+ $membershipID = $membership['membershipID'];
+ $membershipSession->$membershipID = $membership;
$count++;
}
@@ -87,7 +88,7 @@ class AuthController extends Zend_Controller_Action
$auth = Zend_Auth::getInstance();
$auth->clearIdentity();
Zend_Session::namespaceUnset('userIDs');
- Zend_Session::namespaceUnset('user');
+ Zend_Session::namespaceUnset('memberships');
Zend_Session::forgetMe();
$this->_helper->redirector('login', 'auth');
return;
diff --git a/application/controllers/EventController.php b/application/controllers/EventController.php
index 6497a49..ff4a6a4 100644
--- a/application/controllers/EventController.php
+++ b/application/controllers/EventController.php
@@ -14,7 +14,6 @@ class EventController extends Zend_Controller_Action
{
protected $eventMapper;
protected $eventcategoryMapper;
- protected $membershipMapper;
protected $config;
protected $pbs2host;
protected $userIDsNamespace;
@@ -29,7 +28,6 @@ class EventController extends Zend_Controller_Action
if($this->userIDsNamespace['membershipID'] !='') {
$this->eventMapper = new Application_Model_EventMapper();
$this->eventcategoryMapper = new Application_Model_EventcategoryMapper();
- $this->membershipMapper = new Application_Model_MembershipMapper();
} else {
$this->_helper->redirector('selectmembership', 'person');
return;
@@ -85,8 +83,9 @@ class EventController extends Zend_Controller_Action
$event = $eventObj->toArray();
$bootos = new Application_Model_BootOs();
$event['pbs_bootos_title'] = $bootoslist[$event['pbs_bootosID']]->getTitle();
- $membership = new Application_Model_Membership();
- $this->membershipMapper->find($event['pbs_membershipID'], $membership);
+ $membershipsNamespace = Zend_Session::namespaceGet('memberships');
+ $membership = new Application_Model_Membership($membershipsNamespace[$event['pbs_membershipID']]);
+ $membership->setID($event['pbs_membershipID']);
$personApiResult = PostToHost($this->pbs2host, $this->config['pbs2']['getperson'] . $membership->getApikey(), 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', '');
$personXMLString = $personApiResult['http-body'];
if(strlen($personXMLString) > 0) {
@@ -333,7 +332,7 @@ class EventController extends Zend_Controller_Action
$month = date('m');
echo json_encode(array(
- array(
+ array(
'id' => 111,
'title' => "Event1",
'start' => "$year-$month-10",
diff --git a/application/controllers/PersonController.php b/application/controllers/PersonController.php
index f880eb4..a87702c 100644
--- a/application/controllers/PersonController.php
+++ b/application/controllers/PersonController.php
@@ -13,7 +13,6 @@
class PersonController extends Zend_Controller_Action
{
protected $person = null;
- protected $membershipMapper = null;
protected $currentMembership = null;
protected $memberships = null;
protected $groups = null;
@@ -28,37 +27,52 @@ class PersonController extends Zend_Controller_Action
$this->config = $bootstrap->getOptions();
$this->pbs2host = $this->config['pbs2']['host'];
$this->userIDsNamespace = Zend_Session::namespaceGet('userIDs');
- $this->membershipMapper = new Application_Model_MembershipMapper();
$this->currentMembership = new Application_Model_Membership();
$this->person = new Application_Model_Person();
- $this->memberships = Zend_Session::namespaceGet('memberships');
+ 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'];
- $this->membershipMapper->find($membershipID, $this->currentMembership);
- $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));
+ $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(isset($this->memberships)) {
+ if(is_array($this->memberships)) {
foreach($this->memberships as $membership) {
- $grouprequest = "groupid=" . $membership['groupID'];
- $groupApiResult = PostToHost($this->pbs2host, $this->config['pbs2']['getgroup'] . $membership['apikey'], 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', $grouprequest);
+ $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);
@@ -67,7 +81,7 @@ class PersonController extends Zend_Controller_Action
$group->setTitle(sprintf("%s", $groupXML->group->title));
$group->setDescription(sprintf("%s", $groupXML->group->description));
- $roleApiResult = PostToHost($this->pbs2host, $this->config['pbs2']['getrole'] . $membership['apikey'], 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', '');
+ $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) {
$roleXML = new SimpleXMLElement($roleXMLString);
@@ -78,12 +92,12 @@ class PersonController extends Zend_Controller_Action
$role->setDescription(sprintf("%s", $roleXML->role->description));
$role->setInheritance(sprintf("%s", $roleXML->role->inheritance));
- $apikeys[$group->getID()] = $membership['apikey'];
+ $apikeys[$group->getID()] = $membership->getApikey();
$this->groups[] = array (
'groupID' => $group->getID(),
'title' => $group->getTitle(),
'description' => $group->getDescription(),
- 'membershipID' => $membership['membershipID'],
+ 'membershipID' => $membership->getID(),
'role' => $role->getTitle()
);
$this->view->apikeys = $apikeys;
@@ -120,19 +134,19 @@ class PersonController extends Zend_Controller_Action
$this->_redirect('/');
} else {
if(count($this->memberships) == 1) {
- $myMembership = $this->memberships[0];
+ $membership = $this->memberships[0];
$userSession = new Zend_Session_Namespace('userIDs');
- $userSession->membershipID = $myMembership['membershipID'];
- $userSession->personID = $myMembership['personID'];
- $userSession->groupID = $myMembership['groupID'];
- $userSession->roleID = $myMembership['roleID'];
- $userSession->apikey = $myMembership['apikey'];
+ $userSession->membershipID = $membership->getID();
+ $userSession->personID = $membership->getPersonID();
+ $userSession->groupID = $membership->getGroupID();
+ $userSession->roleID = $membership->getRoleID();
+ $userSession->apikey = $membership->getApikey();
$this->_redirect('/');
} elseif(count($this->memberships) > 1) {
if(isset($_POST['selectmembership'])) {
+ $membership = $this->memberships[$_POST['membershipID']];
$userSession = new Zend_Session_Namespace('userIDs');
- $membership = $this->membershipMapper->find($_POST['membershipID']);
- $userSession->membershipID = $_POST['membershipID'];
+ $userSession->membershipID = $membership->getID();
$userSession->personID = $membership->getPersonID();
$userSession->groupID = $membership->getGroupID();
$userSession->roleID = $membership->getRoleID();
@@ -143,8 +157,8 @@ class PersonController extends Zend_Controller_Action
if(isset($this->memberships)) {
$suspendlist = array();
foreach($this->memberships as $membership) {
- $grouprequest = "groupid=" . $membership['groupID'];
- $groupApiResult = PostToHost($this->pbs2host, $this->config['pbs2']['getgroup'] . $membership['apikey'], 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', $grouprequest);
+ $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);
@@ -152,15 +166,16 @@ class PersonController extends Zend_Controller_Action
$group->setID(sprintf("%s", $groupXML->group->id));
$group->setTitle(sprintf("%s", $groupXML->group->title));
$group->setDescription(sprintf("%s", $groupXML->group->description));
- if($membership['suspend'] == 0){
+ $supend = $membership->getSuspend();
+ if($suspend == 0){
$membershipList[] = array(
- 'membershipID' => $membership['membershipID'],
+ 'membershipID' => $membership->getID(),
'group' => $group->getTitle()
);
}
else{
$suspendlist[] = array(
- 'membershipID' => $membership['membershipID'],
+ 'membershipID' => $membership->getID(),
'group' => $group->getTitle()
);
}
diff --git a/application/models/MembershipMapper.php b/application/models/MembershipMapper.php
deleted file mode 100644
index 6786c92..0000000
--- a/application/models/MembershipMapper.php
+++ /dev/null
@@ -1,151 +0,0 @@
-<?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 Application_Model_MembershipMapper
-{
-
- protected $_dbTable;
-
- public function findBy($where, $array=false, $order=false)
- {
- foreach($where as $k => $v){
- if($v != null)
- $where2[] = "$k = '$v'";
- else
- $where2[] = "$k IS NULL";
- }
- $where = implode(" AND " ,$where2);
-
- try{
- $db = Zend_Db_Table::getDefaultAdapter();
- $select = $this->getDbTable()->select()
- ->from($this->_dbTable)
- ->where($where);
-
- if(is_array($order)){
- foreach ($order as $k => $v)
- $a[] = "$k $v";
- $select->order($a);
- }
-
- $stmt = $select->query();
- $result = $stmt->fetchAll();
-
- if(!$array){
- $entries = array();
- foreach ($result as $row) {
- $entry = new Application_Model_Membership($row);
- $entry->setID($row['membershipID']);
- $entries[] = $entry;
- }
- return $entries;
- }else{
- return $result;
- }
-
- }catch (Zend_Exception $e) {
- echo "Error message 2: " . $e->getMessage() . "\n";
- }
- }
-
- public function setDbTable($dbTable)
- {
- if (is_string($dbTable)) {
- $dbTable = new $dbTable();
- }
-
- if (!$dbTable instanceof Zend_Db_Table_Abstract) {
- throw new Exception('Invalid table data gateway provided');
- }
-
- $this->_dbTable = $dbTable;
-
- return $this;
- }
-
- public function getDbTable()
- {
- if (null === $this->_dbTable) {
- $this->setDbTable('Application_Model_DbTable_Membership');
- }
-
- return $this->_dbTable;
- }
-
- public function save(Application_Model_Membership $membership)
- {
-
- $data = array('membershipID'=> $membership->getID() ,'groupID'=> $membership->getGroupID() ,'roleID'=> $membership->getRoleID() ,'personID'=> $membership->getPersonID() ,'suspend'=> $membership->getSuspend(), 'apikey'=> $membership->getApikey() );
-
- if (null === ($id = $membership->getID()) ) {
- unset($data['membershipID']);
- return $this->getDbTable()->insert($data);
- } else {
- $this->getDbTable()->update($data, array('membershipID = ?' => $id));
- }
- }
-
- public function delete(Application_Model_Membership $membership)
- {
- if (null === ($id = $membership->getID()) ) {
- return;
- } else {
- $this->getDbTable()->delete(array('membershipID = ?' => $id));
- }
- }
-
- public function find($id, Application_Model_Membership $membership = null)
- {
- $return = false;
- if($membership == null){
- $return = true;
- }
- if($return){
- $membership = new Application_Model_Membership();
- }
- $result = $this->getDbTable()->find($id);
- if (0 == count($result)) {
- return;
- }
-
- $row = $result->current();
-
- $membership->setID($row->membershipID)->setGroupID($row->groupID)->setRoleID($row->roleID)->setPersonID($row->personID)->setSuspend($row->suspend)->setApikey($row->apikey);
- if($return){
- return $membership;
- }
- }
-
- public function fetchAll()
- {
- $resultSet = $this->getDbTable()->fetchAll();
- $entries = array();
- foreach ($resultSet as $row) {
- $entry = new Application_Model_Membership();
-
- $entry->setID($row->membershipID)->setGroupID($row->groupID)->setRoleID($row->roleID)->setPersonID($row->personID)->setSuspend($row->suspend)->setApikey($row->apikey);
-
- $entries[] = $entry;
- }
- return $entries;
- }
-
- public function compare(Application_Model_Membership $v1,Application_Model_Membership $v2){
- $vv1 = $v1->toArray();
- $vv2 = $v2->toArray();
- return array_diff($vv1,$vv2);
- }
-
-
-
-}
-