Archived
1
0
Fork 0
This repository has been archived on 2026-05-10. You can view files and clone it, but you cannot make any changes to it's state, such as pushing and creating new issues, pull requests or comments.
fiktivkod/application/modules/default/controllers/AuthController.php
2011-02-26 14:17:32 +01:00

75 lines
No EOL
2.2 KiB
PHP

<?php
/**
* Description of AuthController
*
*/
class AuthController extends Fiktiv_Controller_Action
{
/**
* Let the user connect with a world of
* possibilities
*/
public function loginAction()
{
// Redirect if user is logged in
if (Zend_Auth::getInstance()->hasIdentity())
$this->_redirect('/');
// Do authentication magic
$form = new Zend_Form();
$emailElement = new Zend_Form_Element_Text('email');
$emailElement->setLabel($this->translate('u:email'))
->setRequired(true)
->addValidator('NotEmpty', true)
->addValidator('EmailAddress', true);
$emailElement->getValidator('EmailAddress')->setMessage('u:ERROR_FORM_EMAIL_INVALID', Zend_Validate_EmailAddress::INVALID_FORMAT);
$emailElement->getValidator('NotEmpty')->setMessage('u:ERROR_FORM_EMPTY', Zend_Validate_NotEmpty::IS_EMPTY);
$passwordElement = new Zend_Form_Element_Password('password');
$passwordElement->setLabel($this->translate('u:password'))
->setRequired(true)
->addValidator('NotEmpty', true);
$passwordElement->getValidator('NotEmpty')->setMessage('u:ERROR_FORM_EMPTY', Zend_Validate_NotEmpty::IS_EMPTY);
$buttonElement = new Zend_Form_Element_Submit('login');
$form->addElements(array($emailElement, $passwordElement, $buttonElement));
if ($this->_request->isPost() && $form->isValid($this->_request->getParams())) {
$users = new ModelUser();
if ($users->login($this->_request->getParam('email'), $this->_request->getParam('password'))) {
// TODO: redirect user
$this->_redirect('/');
} else {
// TODO: Wrong email / password
}
}
$this->view->form = $form;
}
/**
* This baby makes sure the user is
* no longer connected to the site
*/
public function logoutAction()
{
// Destroy the magic!
$auth = Zend_Auth::getInstance();
if ($auth->hasIdentity())
$auth->clearIdentity();
$this->_redirect('/');
}
}