From 7be4355001156faed62c71492234cba2c5bf96b4 Mon Sep 17 00:00:00 2001
From: Björn Geiger
Date: Thu, 10 Mar 2011 22:10:05 +0100
Subject: Benutzervewaltung, Gruppenverwaltung, Membershipverwaltung und noch
leerer RoleController
---
application/controllers/PersonController.php | 157 ++++++++++++++++++++++++---
1 file changed, 142 insertions(+), 15 deletions(-)
(limited to 'application/controllers/PersonController.php')
diff --git a/application/controllers/PersonController.php b/application/controllers/PersonController.php
index 986117a..0b6db2e 100644
--- a/application/controllers/PersonController.php
+++ b/application/controllers/PersonController.php
@@ -1,27 +1,154 @@
hasIdentity()) {
- // TODO: quick hack fixxen
- $this->_redirect('/Auth/login');
+{
+ protected $person;
+ protected $personmapper;
+ protected $membershipMapper;
+ protected $memberships;
+ protected $groupMapper;
+ protected $groups;
+ protected $groupRequestMapper;
+
+ public function init() {
+ if (Zend_Auth::getInstance()->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 indexAction()
- {
- echo 'case2';
- // action body
- }
+ 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