base.php 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. <?php
  2. class Auth_Base {
  3. function check_password($owner_uid, $password) {
  4. return false;
  5. }
  6. function authenticate($login, $password) {
  7. return false;
  8. }
  9. // Auto-creates specified user if allowed by system configuration
  10. // Can be used instead of find_user_by_login() by external auth modules
  11. function auto_create_user($login) {
  12. if ($login && defined('AUTH_AUTO_CREATE') && AUTH_AUTO_CREATE) {
  13. $user_id = $this->find_user_by_login($login);
  14. if (!$user_id) {
  15. $login = $this->dbh->escape_string($login);
  16. $salt = substr(bin2hex(get_random_bytes(125)), 0, 250);
  17. $pwd_hash = encrypt_password($password, $salt, true);
  18. $query = "INSERT INTO ttrss_users
  19. (login,access_level,last_login,created,pwd_hash,salt)
  20. VALUES ('$login', 0, null, NOW(), '$pwd_hash','$salt')";
  21. $this->dbh->query($query);
  22. return $this->find_user_by_login($login);
  23. } else {
  24. return $user_id;
  25. }
  26. }
  27. return $this->find_user_by_login($login);
  28. }
  29. function find_user_by_login($login) {
  30. $login = $this->dbh->escape_string($login);
  31. $result = $this->dbh->query("SELECT id FROM ttrss_users WHERE
  32. login = '$login'");
  33. if ($this->dbh->num_rows($result) > 0) {
  34. return $this->dbh->fetch_result($result, 0, "id");
  35. } else {
  36. return false;
  37. }
  38. }
  39. }
  40. ?>