db = Zend_Db_Table::getDefaultAdapter();
$this->personmapper = new Application_Model_PersonMapper();
}
public function indexAction()
{
$this->_helper->redirector('login', 'auth');
}
public function loginAction()
{
if (Zend_Auth::getInstance()->hasIdentity()) {
print_a('Already logged in.');
} else {
if (!isset($_POST["login"])){
$loginForm = new dev_Form_AuthLogin();
} else {
$loginForm = new dev_Form_AuthLogin($_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->_redirect('/dev/');
return;
} else {
echo "Wrong Email or Password.";
}
}
}
$this->view->loginForm = $loginForm;
}
}
public function registerAction()
{
if (Zend_Auth::getInstance()->hasIdentity()) {
print_a('Already logged in.');
} else {
if (!isset($_POST["register"])){
$registerForm = new dev_Form_AuthRegister();
} else {
$registerForm = new dev_Form_AuthRegister($_POST);
if ($registerForm->isValid($_POST)) {
$person = new Application_Model_Person($_POST);
$this->personmapper = new Application_Model_PersonMapper();
$date = new DateTime();
$person->setRegisterdate($date->getTimestamp());
$person->setPasswordSalt(MD5($date->getTimestamp()));
$person->setPassword(MD5($person->getPassword() . $person->getPasswordSalt()));
print_a($person);
try {
$this->personmapper->save($person);
}catch(Zend_Exception $e)
{
echo "Caught exception: " . get_class($e) . "
";
echo "Message: " . $e->getMessage() . "
";
echo "Email Address already existing..";
return;
}
echo "Successfully registered.
";
echo "Continue to Login: Login";
$this->_helper->redirector('login', 'auth');
return;
}
}
$this->view->registerForm = $registerForm;
}
}
public function logoutAction()
{
$auth = Zend_Auth::getInstance();
$auth->clearIdentity();
$this->_helper->redirector('login', 'auth');
}
public function recoverpasswordAction()
{
if (!isset($_POST["recoverPassword"])){
$recoverPasswordForm = new dev_Form_AuthRecoverPassword();
} else {
$recoverPasswordForm = new dev_Form_AuthRecoverPassword($_POST);
# Wiederherstellung funktioniert noch nicht!!!
/*if ($recoverPasswordForm->isValid($_POST)) {
$recoverPasswordForm->getView()->url();
$person = new Application_Model_Person($_POST);
$this->personmapper = new Application_Model_PersonMapper();
$result = $this->personmapper->findBy('email', $_POST['email']);
$email = $result[0]['email'];
$name = $result[0]['firstname'] . ' ' . $result[0]['name'];
$url = $this->getRequest()->getScheme() . '://' . $this->getRequest()->getHttpHost() . $this->view->url();
$recoverid = $this->random(100);
$mailbody = 'Um das Passwort zu ändern klicken Sie auf folgenden Link
Passwort ändern';
$mail = new Zend_Mail();
$mail->setBodyHtml($mailbody, 'utf8');
$mail->getBodyHtml()->getContent();
$mail->setFrom('admin@local', 'Admin');
$mail->addTo($email, $name);
$mail->setSubject('Password Wiederherstellung Preboot Server');
$mail->send();
}
*/
}
$this->view->recoverPasswordForm = $recoverPasswordForm;
}
public function deleteAction()
{
$result = $this->personmapper->findBy('email', Zend_Auth::getInstance()->getIdentity());
$person = $result[0];
$personID = $person["personID"];
if (isset($personID)){
$this->personmapper = new Application_Model_PersonMapper();
$person = $this->personmapper->find($personID);
try {
$this->personmapper->delete($person);
}catch(Zend_Exception $e)
{
echo "Caught exception: " . get_class($e) . "
";
echo "Message: " . $e->getMessage() . "
";
return;
}
$auth = Zend_Auth::getInstance();
$auth->clearIdentity();
$this->_helper->redirector('login', 'auth');
}
}
}