]> git.wh0rd.org - tt-rss.git/blob - classes/auth_base.php
split authentication to separate modules
[tt-rss.git] / classes / auth_base.php
1 <?php
2 class Auth_Base {
3 protected $link;
4
5 function __construct($link) {
6 $this->link = $link;
7 }
8
9 function authenticate($login, $password) {
10 return false;
11 }
12
13 // Auto-creates specified user if allowed by system configuration
14 // Can be used instead of find_user_by_login() by external auth modules
15 function auto_create_user($login) {
16 if ($login && defined('AUTH_AUTO_CREATE') && AUTH_AUTO_CREATE) {
17 $user_id = $this->find_user_by_login($login);
18
19 if (!$user_id) {
20 $login = db_escape_string($login);
21 $salt = substr(bin2hex(get_random_bytes(125)), 0, 250);
22 $pwd_hash = encrypt_password($password, $salt, true);
23
24 $query = "INSERT INTO ttrss_users
25 (login,access_level,last_login,created,pwd_hash,salt)
26 VALUES ('$login', 0, null, NOW(), '$pwd_hash','$salt')";
27
28 db_query($this->link, $query);
29
30 return $this->find_user_by_login($login);
31
32 } else {
33 return $user_id;
34 }
35 }
36
37 return false;
38 }
39
40 function find_user_by_login($login) {
41 $login = db_escape_string($login);
42
43 $result = db_query($this->link, "SELECT id FROM ttrss_users WHERE
44 login = '$login'");
45
46 if (db_num_rows($result) > 0) {
47 return db_fetch_result($result, 0, "id");
48 } else {
49 return false;
50 }
51
52 }
53 }
54
55 ?>