db = Zend_Db_Table::getDefaultAdapter(); $this->personmapper = new Application_Model_PersonMapper(); } public function indexAction() { $this->_helper-> viewRenderer-> setNoRender(); $this->_helper->redirector('login', 'auth'); } public function loginAction() { if (Zend_Auth::getInstance()->hasIdentity()) { $this->_redirect('/fbgui/'); } else { if (!isset($_POST["login"])){ $loginForm = new fbgui_Form_Login(); } else { $loginForm = new fbgui_Form_Login($_POST); if ($loginForm->isValid($_POST)) { $auth = Zend_Auth::getInstance(); $adapter = new Zend_Auth_Adapter_DbTable( $this->db, 'pbs_person', 'email', 'password', 'MD5(CONCAT(?, password_salt))' ); $adapter->setIdentity($loginForm->getValue('email')); $adapter->setCredential($loginForm->getValue('password')); $result = $auth->authenticate($adapter); // TODO: erweiterte fehlerbeschreibung des Users if ($result->isValid()) { $this->personmapper = new Application_Model_PersonMapper(); $result = $this->personmapper->findBy('email', Zend_Auth::getInstance()->getIdentity()); $person = new Application_Model_Person($result[0]); $person->setID($result[0]['personID']); $date = new DateTime(); $person->setLogindate($date->getTimestamp()); $this->personmapper->save($person); $this->_helper->redirector('selectmembership', 'auth'); return; } else { echo "Wrong Email or Password."; } } } $this->view->loginForm = $loginForm; } } public function logoutAction() { $this->_helper-> viewRenderer-> setNoRender(); $auth = Zend_Auth::getInstance(); $auth->clearIdentity(); Zend_Session::namespaceUnset('userIDs'); Zend_Session::forgetMe(); $this->_helper->redirector('login', 'auth'); return; } public function selectmembershipAction() { if (Zend_Auth::getInstance()->hasIdentity()) { $userIDsNamespace = Zend_Session::namespaceGet('userIDs'); if(isset($userIDsNamespace['membershipID'])) { $this->_redirect('/fbgui/'); } else { $personmapper = new Application_Model_PersonMapper(); $result = $personmapper->findBy('email', Zend_Auth::getInstance()->getIdentity()); $person = new Application_Model_Person($result[0]); $person->setID($result[0]['personID']); $membershipMapper = new Application_Model_MembershipMapper(); $memberships = $membershipMapper->findBy("personID",$person->getID()); if(count($memberships) > 0) { if(isset($_POST['selectmembership'])) { $roleSession = new Zend_Session_Namespace('userIDs'); $roleSession->membershipID = $_POST['membershipID']; $roleSession->personID = $person->getID(); $membership = $membershipMapper->find($_POST['membershipID']); $roleSession->groupID = $membership->getGroupID(); $roleSession->roleID = $membership->getRoleID(); $this->_redirect('/fbgui/'); return; } else { $groupMapper = new Application_Model_GroupMapper(); $roleMapper = new Application_Model_RoleMapper(); if(isset($memberships)) { foreach($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 fbgui_Form_MembershipSelect(array('membershiplist' => $membershipList)); $this->view->membershipSelectForm = $membershipSelectForm; } } else { $this->_redirect('/fbgui/'); } } } else { $this->_helper->redirector('login', 'auth'); } } public function changemembershipAction() { $this->_helper-> viewRenderer-> setNoRender(); Zend_Session::namespaceUnset('userIDs'); $this->_helper->redirector('selectmembership', 'auth'); return; } }