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('dev','login', 'auth');
}
}
public function indexAction()
{
$this->_helper->redirector('dev','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 dev_Form_PersonEdit();
} else {
$editForm = new dev_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 dev_Form_GroupRequest(array('grouplist' => $allgroups));
} else {
$requestForm = new dev_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.
";
}
}
}
}
}
}