diff options
author | Björn Geiger | 2011-03-24 13:47:33 +0100 |
---|---|---|
committer | Björn Geiger | 2011-03-24 13:47:33 +0100 |
commit | 06cfaf4e0a9b521a151cc214dd217018f4c83389 (patch) | |
tree | 1a0b6598b18d9579847d087f9ae96b63b13d143a /application/modules/user/controllers/PersonController.php | |
parent | Testdaten Rechtetabelle (diff) | |
download | pbs2-06cfaf4e0a9b521a151cc214dd217018f4c83389.tar.gz pbs2-06cfaf4e0a9b521a151cc214dd217018f4c83389.tar.xz pbs2-06cfaf4e0a9b521a151cc214dd217018f4c83389.zip |
PersonController im user Module
Diffstat (limited to 'application/modules/user/controllers/PersonController.php')
-rw-r--r-- | application/modules/user/controllers/PersonController.php | 169 |
1 files changed, 160 insertions, 9 deletions
diff --git a/application/modules/user/controllers/PersonController.php b/application/modules/user/controllers/PersonController.php index f43989a..59ce707 100644 --- a/application/modules/user/controllers/PersonController.php +++ b/application/modules/user/controllers/PersonController.php @@ -1,18 +1,169 @@ <?php -class User_PersonController extends Zend_Controller_Action +class user_PersonController extends Zend_Controller_Action { + protected $person; + protected $personmapper; + protected $membershipMapper; + protected $memberships; + protected $groupMapper; + protected $groups; + protected $groupRequestMapper; - public function init() - { - /* Initialize action controller here */ - } + 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 ( + 'groupID' => $group->getID(), + 'title' => $group->getTitle(), + 'description' => $group->getDescription(), + 'membershipID' => $membership['membershipID'] + ); + } + } + } else { + $this->_helper->redirector('login', 'auth'); + return; + } + } - public function indexAction() - { - // action body - } + public function indexAction() + { + $this->view->person = $this->person; + $this->view->groups = $this->groups; + } + public function editAction() + { + $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) . "<br/>"; + echo "Message: " . $e->getMessage() . "<br/>"; + echo "Email Address already existing."; + return; + } + $this->_helper->redirector('', 'person'); + return; + } + } + $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()) { + $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) { + echo "No Groups to choose."; + } + $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) . "<br/>"; + echo "Message: " . $e->getMessage() . "<br/>"; + return; + } + $this->_helper->redirector('', 'person'); + return; + } + } + $this->view->requestForm = $requestForm; + } + + public function leaveAction() + { + $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) . "<br/>"; + echo "Message: " . $e->getMessage() . "<br/>"; + return; + } + $this->_helper->redirector('', 'person'); + return; + } + } } + + + + + + + + + + + |