Revision: 16967
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at August 19, 2009 11:26 by willemmulder
Initial Code
<?php
class Login_Controller extends Template_Controller {
public $template = "templates/template";
//make sure every user that uses this Controller is logged in
public function __construct() {
parent::__construct();
$this->session = Session::instance();
$this->auth = new Auth();
if ($this->auth->logged_in()) {
//logged in
//that's all right
$this->user = $this->auth->get_user();
$this->session->set("userid", $this->user->id);
} else {
//not logged in
//try to auto-login
if ($this->auth->auto_login() == TRUE) {
//all right, logged in
$this->user = $this->auth->get_user();
$this->session->set("userid", $this->user->id);
} else {
if (url::current() != "login/login") {
//set this page as 'last requested' and redirect to login-page
$this->session->set("requested_url","/".url::current());
url::redirect("login/login"); //redirect to login-page
} else {
//we're already on the login-page (maybe even with a POST), so no redirect necessary!
}
}
}
//create template
//edit: use Template_Controller instead
//$this->template = new View($this->template);
//add a Profiler for extra debug information if you want
//$profiler = new Profiler();
}
public function index() {
url::redirect("login/login");
}
public function login() {
$this->template->title = "Login to Wi3";
//try to login user if $_POST is supplied
$form = $_POST;
if($form){
if ($this->auth->login($form['username'], $form['password'], TRUE)) //set remember option to TRUE
{
// Login successful, redirect
if ($this->session->get("requested_url") != null AND $this->session->get("requested_url") != "login/login") {
url::redirect($this->session->get("requested_url")); //return to page where login was called
} else {
url::redirect(""); //redirect to home-page
}
}
else
{
$this->template->content = '<p>Login failed.</p>';
$this->template->content .= new View("login");
return;
}
}
if ($this->auth->logged_in()) {
url::redirect(""); //redirect to homepage
//$this->template->content = 'You are logged in as ' . $this->auth->get_user()->username;
return;
}
$this->template->content = new View("login");
}
public function logout() {
$this->auth->logout(TRUE);
url::redirect("/");
}
}
?>
Initial URL
Initial Description
Initial Title
kohana login controller
Initial Tags
login
Initial Language
PHP