Class Kohana_Auth_File

Kohana_Auth_File

extends Auth
extends Kohana_Auth

File Auth driver. [!!] this Auth driver does not support roles nor autologin.

package
Kohana/Auth
author
Kohana Team
copyright
(c) Kohana Team
license
https://koseven.ga/LICENSE.md


Properties

protected $_config

Default value:
NULL

protected static $_instance

NULL

protected $_session

Default value:
NULL

protected $_users

Default value:
NULL

Methods

public __construct() (defined in Kohana_Auth_File)

Constructor loads the user list into the class.

Source Code

public function __construct($config = [])
{
	parent::__construct($config);

	// Load user list
	$this->_users = Arr::get($config, 'users', []);
}

public check_password(string $password ) (defined in Kohana_Auth_File)

Compare password with original (plain text). Works for current (logged in) user

Parameters

  • string $password required - Password

Return Values

  • boolean

Source Code

public function check_password($password)
{
	$username = $this->get_user();

	if ($username === FALSE)
		return FALSE;

	return ($password === $this->password($username));
}

public force_login(mixed $username ) (defined in Kohana_Auth_File)

Forces a user to be logged in, without specifying a password.

Parameters

  • mixed $username required - Username

Return Values

  • boolean

Source Code

public function force_login($username)
{
	// Complete the login
	return $this->complete_login($username);
}

public password(mixed $username ) (defined in Kohana_Auth_File)

Get the stored password for a username.

Parameters

  • mixed $username required - Username

Return Values

  • string

Source Code

public function password($username)
{
	return Arr::get($this->_users, $username, FALSE);
}

public get_user([ mixed $default = NULL ] ) (defined in Kohana_Auth)

Gets the currently logged in user from the session. Returns NULL if no user is currently logged in.

Parameters

  • mixed $default = NULL - Default value to return if the user is currently not logged in.

Return Values

  • mixed

Source Code

public function get_user($default = NULL)
{
	return $this->_session->get($this->_config['session_key'], $default);
}

public hash(string $str ) (defined in Kohana_Auth)

Perform a hmac hash, using the configured method.

Parameters

  • string $str required - String to hash

Return Values

  • string

Source Code

public function hash($str)
{
	if ( ! $this->_config['hash_key'])
		throw new Kohana_Exception('A valid hash key must be set in your auth config.');

	return hash_hmac($this->_config['hash_method'], $str, $this->_config['hash_key']);
}

public hash_password(string $password ) (defined in Kohana_Auth)

Creates a hashed hmac password from a plaintext password. This method is deprecated, Auth::hash should be used instead.

Parameters

  • string $password required - Plaintext password

Tags

  • Deprecated -

Source Code

public function hash_password($password)
{
	return $this->hash($password);
}

public static instance() (defined in Kohana_Auth)

Singleton pattern

Return Values

  • Auth

Source Code

public static function instance()
{
	if ( ! isset(Auth::$_instance))
	{
		// Load the configuration for this type
		$config = Kohana::$config->load('auth');

		if ( ! $type = $config->get('driver'))
		{
			$type = 'file';
		}

		// Set the session class name
		$class = 'Auth_'.ucfirst($type);

		// Create a new session instance
		Auth::$_instance = new $class($config);
	}

	return Auth::$_instance;
}

public logged_in([ string $role = NULL ] ) (defined in Kohana_Auth)

Check if there is an active session. Optionally allows checking for a specific role.

Parameters

  • string $role = NULL - Role name

Return Values

  • mixed

Source Code

public function logged_in($role = NULL)
{
	return ($this->get_user() !== NULL);
}

public login(string $username , string $password [, boolean $remember = bool FALSE ] ) (defined in Kohana_Auth)

Attempt to log in a user by using an ORM object and plain-text password.

Parameters

  • string $username required - Username to log in
  • string $password required - Password to check against
  • boolean $remember = bool FALSE - Enable autologin

Return Values

  • boolean

Source Code

public function login($username, $password, $remember = FALSE)
{
	if (empty($password))
		return FALSE;

	return $this->_login($username, $password, $remember);
}

public logout([ boolean $destroy = bool FALSE , boolean $logout_all = bool FALSE ] ) (defined in Kohana_Auth)

Log out a user by removing the related session variables.

Parameters

  • boolean $destroy = bool FALSE - Completely destroy the session
  • boolean $logout_all = bool FALSE - Remove all tokens for user

Return Values

  • boolean

Source Code

public function logout($destroy = FALSE, $logout_all = FALSE)
{
	if ($destroy === TRUE)
	{
		// Destroy the session completely
		$this->_session->destroy();
	}
	else
	{
		// Remove the user from the session
		$this->_session->delete($this->_config['session_key']);

		// Regenerate session_id
		$this->_session->regenerate();
	}

	// Double check
	return ! $this->logged_in();
}

protected _login(string $username , string $password , boolean $remember ) (defined in Kohana_Auth_File)

Logs a user in.

Parameters

  • string $username required - Username
  • string $password required - Password
  • boolean $remember required - Enable autologin (not supported)

Return Values

  • boolean

Source Code

protected function _login($username, $password, $remember)
{
	if ($remember)
	{
		throw new Kohana_Exception('File based auth does not support 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;
}

protected complete_login() (defined in Kohana_Auth)

Source Code

protected function complete_login($user)
{
	// Regenerate session_id
	$this->_session->regenerate();

	// Store username in session
	$this->_session->set($this->_config['session_key'], $user);

	return TRUE;
}

Do you want to contribute to Koseven?

We need YOUR help!

This project is open source. What does this mean? YOU can help:
  • Found a bug? Report it on Github
  • Need a feature? Add it Here
  • Want to help? Join the Forum
Go to Github