diff options
author | Andrew Dolgov <[email protected]> | 2023-10-25 12:55:09 +0300 |
---|---|---|
committer | Andrew Dolgov <[email protected]> | 2023-10-25 12:55:09 +0300 |
commit | 865ecc87963dc3b26e66296616eef2a1cc41ac3f (patch) | |
tree | bf2ecd8a391103bdb2c8b70cd33c47467310754b /classes/Auth_Base.php | |
parent | 0a5507d3bd79d04c860455664f919bf8e7274fda (diff) |
move to psr-4 autoloader
Diffstat (limited to 'classes/Auth_Base.php')
-rw-r--r-- | classes/Auth_Base.php | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/classes/Auth_Base.php b/classes/Auth_Base.php new file mode 100644 index 000000000..d8128400d --- /dev/null +++ b/classes/Auth_Base.php @@ -0,0 +1,59 @@ +<?php +abstract class Auth_Base extends Plugin implements IAuthModule { + protected $pdo; + + const AUTH_SERVICE_API = '_api'; + + function __construct() { + $this->pdo = Db::pdo(); + } + + function hook_auth_user($login, $password, $service = '') { + return $this->authenticate($login, $password, $service); + } + + /** Auto-creates specified user if allowed by system configuration. + * Can be used instead of find_user_by_login() by external auth modules + * @param string $login + * @param string|false $password + * @return null|int + * @throws Exception + * @throws PDOException + */ + function auto_create_user(string $login, $password = false) { + if ($login && Config::get(Config::AUTH_AUTO_CREATE)) { + $user_id = UserHelper::find_user_by_login($login); + + if (!$user_id) { + + if (!$password) $password = make_password(); + + $user = ORM::for_table('ttrss_users')->create(); + + $user->salt = UserHelper::get_salt(); + $user->login = mb_strtolower($login); + $user->pwd_hash = UserHelper::hash_password($password, $user->salt); + $user->access_level = 0; + $user->created = Db::NOW(); + $user->save(); + + return UserHelper::find_user_by_login($login); + + } else { + return $user_id; + } + } + + return UserHelper::find_user_by_login($login); + } + + + /** replaced with UserHelper::find_user_by_login() + * @param string $login + * @return null|int + * @deprecated + */ + function find_user_by_login(string $login) { + return UserHelper::find_user_by_login($login); + } +} |