From 7b153c00ebf7f930a6f412b31703c9be6dcfe10e Mon Sep 17 00:00:00 2001 From: Björn Geiger Date: Mon, 8 Aug 2011 13:57:00 +0200 Subject: Membership nun auch über Api --- application/controllers/AuthController.php | 5 +- application/controllers/EventController.php | 9 +- application/controllers/PersonController.php | 95 ++++++++++------- application/models/MembershipMapper.php | 151 --------------------------- 4 files changed, 62 insertions(+), 198 deletions(-) delete mode 100644 application/models/MembershipMapper.php 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 @@ - $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); - } - - - -} - -- cgit v1.2.3-55-g7522