From b5cbdd6b400aa1ec77c9846e9cc8d4257f437e3c Mon Sep 17 00:00:00 2001 From: Simon Date: Mon, 14 Mar 2011 16:09:03 +0100 Subject: Application in 3 Modules gesplittet, Dev = unsere entwicklungsumgebung, user = die weboberfläche fr anwender mit acl etc, fbgui = für die fbgui truppe - links in dev müssen noch angepasst werden --- .../modules/dev/controllers/PersonController.php | 154 +++++++++++++++++++++ 1 file changed, 154 insertions(+) create mode 100644 application/modules/dev/controllers/PersonController.php (limited to 'application/modules/dev/controllers/PersonController.php') diff --git a/application/modules/dev/controllers/PersonController.php b/application/modules/dev/controllers/PersonController.php new file mode 100644 index 0000000..0b6db2e --- /dev/null +++ b/application/modules/dev/controllers/PersonController.php @@ -0,0 +1,154 @@ +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 ( + 'id' => $group->getID(), + 'title' => $group->getTitle() + ); + } + } + } else { + $this->_helper->redirector('login', 'auth'); + } + } + + public function indexAction() + { + $this->_helper->redirector('show', 'person'); + } + + public function showAction() + { + $this->view->person = $this->person; + $this->view->groups = $this->groups; + } + + public function editAction() + { + $this->view->person = $this->person; + if (!isset($_POST["save"])){ + $editForm = new Application_Form_PersonEdit(); + } else { + $editForm = new Application_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; + } + echo "Successfully saved.
"; + } + } + + $this->view->editForm = $editForm; + } + + public function requestAction() + { + $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()) { + unset($allgroups[$count]); + } + } + $count++; + } + if (!isset($_POST["request"])){ + if(count($allgroups) <= 0) { + echo "No Groups to choose."; + } + $requestForm = new Application_Form_GroupRequest(array('grouplist' => $allgroups)); + } else { + $requestForm = new Application_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; + } + echo "Successfully requested.
"; + } + } + $this->view->requestForm = $requestForm; + } + + public function leaveAction() + { + $this->view->person = $this->person; + if(isset($_POST['groupID'])) { + if(isset($this->memberships)) { + foreach($this->memberships as $membership) { + if($membership['groupID'] == $_POST['groupID']) { + $membershipObject = $this->membershipMapper->find($membership['membershipID']); + try { + $this->membershipMapper->delete($membershipObject); + } catch(Zend_Exception $e) + { + echo "Caught exception: " . get_class($e) . "
"; + echo "Message: " . $e->getMessage() . "
"; + return; + } + echo "You have been successfully removed from the chosen group.
"; + } + } + } + } + } +} + + + + + + + + + + + -- cgit v1.2.3-55-g7522