This repository has been archived on 2024-04-08. You can view files and clone it, but cannot push or open issues or pull requests.
lnkohana/modules/auth/classes/Kohana/Auth/File.php
2013-04-22 14:09:50 +10:00

95 lines
2.0 KiB
PHP

<?php defined('SYSPATH') OR die('No direct access allowed.');
/**
* File Auth driver.
* [!!] this Auth driver does not support roles nor autologin.
*
* @package Kohana/Auth
* @author Kohana Team
* @copyright (c) 2007-2012 Kohana Team
* @license http://kohanaframework.org/license
*/
class Kohana_Auth_File extends Auth {
// User list
protected $_users;
/**
* Constructor loads the user list into the class.
*/
public function __construct($config = array())
{
parent::__construct($config);
// Load user list
$this->_users = Arr::get($config, 'users', array());
}
/**
* Logs a user in.
*
* @param string $username Username
* @param string $password Password
* @param boolean $remember Enable autologin (not supported)
* @return boolean
*/
protected function _login($username, $password, $remember)
{
if (is_string($password))
{
// Create a hashed password
$password = $this->hash($password);
}
if (isset($this->_users[$username]) AND $this->_users[$username] === $password)
{
// Complete the login
return $this->complete_login($username);
}
// Login failed
return FALSE;
}
/**
* Forces a user to be logged in, without specifying a password.
*
* @param mixed $username Username
* @return boolean
*/
public function force_login($username)
{
// Complete the login
return $this->complete_login($username);
}
/**
* Get the stored password for a username.
*
* @param mixed $username Username
* @return string
*/
public function password($username)
{
return Arr::get($this->_users, $username, FALSE);
}
/**
* Compare password with original (plain text). Works for current (logged in) user
*
* @param string $password Password
* @return boolean
*/
public function check_password($password)
{
$username = $this->get_user();
if ($username === FALSE)
{
return FALSE;
}
return ($password === $this->password($username));
}
} // End Auth File