<?php defined('SYSPATH') or die('No direct access allowed.');

/**
 * This class provides login capability
 *
 * @package    lnApp
 * @category   lnApp/Controllers
 * @author     Deon George
 * @copyright  (c) 2009-2013 Deon George
 * @license    http://dev.leenooks.net/license.html
 * @also       [logout]
 */
class lnApp_Controller_Login extends Controller_TemplateDefault {
	protected $auth_required = FALSE;

	public function action_index() {
		// If user already signed-in
		if (Auth::instance()->logged_in() != 0) {
			// Redirect to the user account
			HTTP::redirect(URL::link('user','welcome/index'));
		}

		// If there is a post and $_POST is not empty
		if ($_POST) {
			// Store our details in a session key
			Session::instance()->set(Kohana::$config->load('auth')->session_key,$_POST['username']);
			Session::instance()->set('password',$_POST['password']);

			// If the post data validates using the rules setup in the user model
			if (Auth::instance()->login($_POST['username'],$_POST['password'])) {
				// Redirect to the user account
				if ($redir = Session::instance()->get('afterlogin')) {
					Session::instance()->delete('afterlogin');
					HTTP::redirect($redir);

				} else
					HTTP::redirect(URL::link('user','welcome/index'));

			} else {
				// We are not successful logging in, so delete our session data
				Session::instance()->delete(Kohana::$config->load('auth')->session_key);
				Session::instance()->delete('password');

				SystemMessage::add(array(
					'title'=>_('Invalid username or password'),
					'type'=>'error',
					'body'=>_('The username or password was invalid.')
				));
			}
		}

		Block::add(array(
			'title'=>_('Login to server'),
			'body'=>View::factory('login'),
			'style'=>array('css/login.css'=>'screen'),
		));

		Script::add(array('type'=>'stdin','data'=>'
			$(document).ready(function() {
				$("#ajxbody").click(function() {$("#ajBODY").load("'.$this->request->uri().'/"); return false;});
			});'
		));
	}

	public function action_noaccess() {
		SystemMessage::add(array(
			'title'=>_('No access to requested resource'),
			'type'=>'error',
			'body'=>_('You do not have access to the requested resource, please contact your administrator.')
		));
	}
}
?>
