Skip to content
Snippets Groups Projects
IndexController.php 1.18 KiB
Newer Older
<?php

/**
 * IndexController
 * 
 * @author
 * @version 
 */

require_once 'Zend/Controller/Action.php';

class Auth_IndexController extends Unl_Controller_Action {
	
	public function indexAction()
	{
		$this->_redirect('/auth/index/login');
	}
	
	public function loginAction()
	{
		$session = new Zend_Session_Namespace(__CLASS__);
		$this->view->errorMessage = $session->errorMessage;
		unset($session->errorMessage);
	}
	
	public function logoutAction()
	{
		Zend_Auth::getInstance()->clearIdentity();
		$this->_redirect('');
	}
	
	public function validateAction()
	{
		$username = $this->getRequest()->getParam('username');
		$password = $this->getRequest()->getParam('password');
		
		$auth = Unl_Auth::getInstance();
		
		$ldap = new Unl_Ldap('ldap://localhost:10389');
		$ldapAdapter = new Unl_Auth_Adapter_Ldap($ldap, $username, $password);
		$auth->pushAdapter($ldapAdapter);
		
		try {
			$result = $auth->authenticate($ldapAdapter);
		} catch (Exception $e) {
			//
		}
		
		if (!$result || !$result->isValid()) {
			$session = new Zend_Session_Namespace(__CLASS__);
			$session->errorMessage = 'Login Failed';
			$this->_redirect('/auth/index');
			return;
		}
		
		$this->_redirect('');
	}

}