]> git.wh0rd.org Git - 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 ?>