lib/controllers/auth.php:
<?php
class onrAuthController extends ezcMvcController
{
    public function 
doLogin()
    {
        
// obtain credentials from POST
        
$email = isset( $_POST['email'] ) ? $_POST['email'] : null;
        
$password = isset( $_POST['password'] ) ? $_POST['password'] : null;
        
$redirUrl = isset( $_POST['redirUrl'] ) ? $_POST['redirUrl'] : '/';

        
$database = new ezcAuthenticationDatabaseInfoezcDbInstance::get(), 'user', array( 'email''password' ) );
        
$databaseFilter = new ezcAuthenticationDatabaseFilter$database );

        
$options = new ezcAuthenticationSessionOptions();
        
$options->validity 86400;

        
$session = new ezcAuthenticationSession$options );
        
$session->start();

        
// use the options object when creating a new Session object
        
$credentials = new ezcAuthenticationPasswordCredentials$emailmd5$password ) );
        
$authentication = new ezcAuthentication$credentials );
        
$authentication->session $session;
        
$authentication->addFilter$databaseFilter );

        if ( !
$authentication->run() )
        {
            
$request = clone $this->request;
            
$status $authentication->getStatus();
            
$request->variables['redirUrl'] = $redirUrl;
            
$request->variables['reasons']  = $status;

            
$request->uri '/login-required';
            return new 
ezcMvcInternalRedirect$request );
        }

        
$res = new ezcMvcResult;
        
$res->status = new ezcMvcExternalRedirect$redirUrl );
        return 
$res;
    }

    public function 
doLogout()
    {
        
$options = new ezcAuthenticationSessionOptions();
        
$options->validity 86400;

        
$session = new ezcAuthenticationSession$options );
        
$session->start();
        
$session->destroy();

        
$res = new ezcMvcResult;
        
$res->status = new ezcMvcExternalRedirect'/' );
        return 
$res;
    }
}
?>