hasIdentity()) { $this->personmapper = new Application_Model_PersonMapper(); $result = $this->personmapper->findBy('email', Zend_Auth::getInstance()->getIdentity()); $this->person = new Application_Model_Person($result[0]); $this->person->setID($result[0]['personID']); $this->groupMapper = new Application_Model_GroupMapper(); $this->groupRequestMapper = new Application_Model_GroupRequestMapper(); $this->membershipMapper = new Application_Model_MembershipMapper(); $this->memberships = $this->membershipMapper->findBy("personID",$this->person->getID()); if(isset($this->memberships)) { foreach($this->memberships as $membership) { $group = $this->groupMapper->find($membership['groupID']); $this->groups[] = array ( 'groupID' => $group->getID(), 'title' => $group->getTitle(), 'description' => $group->getDescription(), 'membershipID' => $membership['membershipID'] ); } } } else { $this->_helper->redirector('login', 'auth'); return; } } public function indexAction() { if(!Pbs_Acl::checkRight('psod')) { $this->_redirect('/user'); } $this->view->person = $this->person; $this->view->groups = $this->groups; $this->view->userIDsNamespace = Zend_Session::namespaceGet('userIDs'); } public function editAction() { if(!Pbs_Acl::checkRight('peod')) { $this->_redirect('/user'); } $this->view->person = $this->person; if (!isset($_POST["save"])){ $editForm = new user_Form_PersonEdit(); } else { $editForm = new user_Form_PersonEdit($_POST); if ($editForm->isValid($_POST)) { if(isset($_POST['newpassword'])) { $date = new DateTime(); $this->person->setPassword($_POST['newpassword']); $this->person->setPasswordSalt(MD5($date->getTimestamp())); $this->person->setPassword(MD5($this->person->getPassword() . $this->person->getPasswordSalt())); } $this->person->setOptions($_POST); try { $this->personmapper->save($this->person); } catch(Zend_Exception $e) { echo "Caught exception: " . get_class($e) . "
"; echo "Message: " . $e->getMessage() . "
"; echo "Email Address already existing."; return; } $this->_helper->redirector('', 'person'); return; } } $this->view->editForm = $editForm; } public function requestAction() { if(!Pbs_Acl::checkRight('grm')) { $this->_redirect('/user'); } $this->view->person = $this->person; $allgroups = $this->groupMapper->fetchAll(); $groupRequests = $this->groupRequestMapper->findBy('personID', $this->person->getID()); $count = 0; foreach($allgroups as $group) { foreach($groupRequests as $groupRequest) { if($groupRequest['groupID'] == $group->getID()) { $groupsFound[$count] = true; } else { $groupsFound[$count] = false; } } foreach($this->memberships as $membership) { if($membership['groupID'] == $group->getID()) { $groupsFound[$count] = true; } else { if($groupsFound[$count] != true) { $groupsFound[$count] = false; } } } $count++; } if(count($groupsFound) > 0) { foreach($groupsFound as $k => $v) { if($v == true) { unset($allgroups[$k]); } } } if (!isset($_POST["request"])){ if(count($allgroups) <= 0) { $this->_helper->redirector('', 'person'); return; } $requestForm = new user_Form_GroupRequest(array('grouplist' => $allgroups)); } else { $requestForm = new user_Form_GroupRequest(array('grouplist' => $allgroups), $_POST); if ($requestForm->isValid($_POST)) { $groupRequestMapper = new Application_Model_GroupRequestMapper(); $groupRequest = new Application_Model_GroupRequest(); $groupRequest->setGroupID($_POST['groupID']); $date = new DateTime(); $groupRequest->setTime($date->getTimestamp()); $groupRequest->setPersonID($this->person->getID()); try { $groupRequestMapper->save($groupRequest); } catch(Zend_Exception $e) { echo "Caught exception: " . get_class($e) . "
"; echo "Message: " . $e->getMessage() . "
"; return; } $this->_helper->redirector('', 'person'); return; } } $this->view->requestForm = $requestForm; } public function leaveAction() { // Nicht klar welches Recht geprüft werden soll /*if(!Pbs_Acl::checkRight('peod')) { $this->_redirect('/user'); }*/ $this->_helper-> viewRenderer-> setNoRender(); $this->view->person = $this->person; $membershipID = $this->_request->getParam('membershipID'); if(isset($membershipID)) { $membership = $this->membershipMapper->find($membershipID); try { $this->membershipMapper->delete($membership); } catch(Zend_Exception $e) { echo "Caught exception: " . get_class($e) . "
"; echo "Message: " . $e->getMessage() . "
"; return; } $this->_helper->redirector('', 'person'); return; } } public function selectmembershipAction() { $userIDsNamespace = Zend_Session::namespaceGet('userIDs'); if(isset($userIDsNamespace['membershipID'])) { $this->_redirect('/user/'); } else { if(count($this->memberships) > 0) { if(isset($_POST['selectmembership'])) { $roleSession = new Zend_Session_Namespace('userIDs'); $roleSession->membershipID = $_POST['membershipID']; $roleSession->personID = $this->person->getID(); $membership = $this->membershipMapper->find($_POST['membershipID']); $roleSession->groupID = $membership->getGroupID(); $roleSession->roleID = $membership->getRoleID(); $this->_redirect('/user/'); return; } else { $groupMapper = new Application_Model_GroupMapper(); $roleMapper = new Application_Model_RoleMapper(); if(isset($this->memberships)) { foreach($this->memberships as $membership) { $group = $groupMapper->find($membership['groupID']); $role = $roleMapper->find($membership['roleID']); $membershipList[] = array( 'membershipID' => $membership['membershipID'], 'group' => $group->getTitle(), 'role' => $role->getTitle() ); } } $membershipSelectForm = new user_Form_MembershipSelect(array('membershiplist' => $membershipList)); $this->view->membershipSelectForm = $membershipSelectForm; } } else { $this->_helper->redirector('request', 'person'); } } } public function changemembershipAction() { $this->_helper-> viewRenderer-> setNoRender(); Zend_Session::namespaceUnset('userIDs'); $this->_helper->redirector('selectmembership', 'person'); return; } }