12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- <?php
- /**
- * 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
- */
- class Kohana_Auth_File extends Auth {
- // User list
- protected $_users;
- /**
- * Constructor loads the user list into the class.
- */
- public function __construct($config = [])
- {
- parent::__construct($config);
- // Load user list
- $this->_users = Arr::get($config, 'users', []);
- }
- /**
- * 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 ($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;
- }
- /**
- * 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));
- }
- }
|