<?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