PageRenderTime 39ms CodeModel.GetById 17ms RepoModel.GetById 0ms app.codeStats 0ms

/system/library/user.php

https://bitbucket.org/monobasic/shop.volero.ch
PHP | 90 lines | 69 code | 21 blank | 0 comment | 9 complexity | a9417d177d25ddc2ffd208c97d32c27f MD5 | raw file
  1. <?php
  2. final class User {
  3. private $user_id;
  4. private $username;
  5. private $permission = array();
  6. public function __construct($registry) {
  7. $this->db = $registry->get('db');
  8. $this->request = $registry->get('request');
  9. $this->session = $registry->get('session');
  10. if (isset($this->session->data['user_id'])) {
  11. $user_query = $this->db->query("SELECT * FROM " . DB_PREFIX . "user WHERE user_id = '" . (int)$this->session->data['user_id'] . "' AND status = '1'");
  12. if ($user_query->num_rows) {
  13. $this->user_id = $user_query->row['user_id'];
  14. $this->username = $user_query->row['username'];
  15. $this->db->query("UPDATE " . DB_PREFIX . "user SET ip = '" . $this->db->escape($this->request->server['REMOTE_ADDR']) . "' WHERE user_id = '" . (int)$this->session->data['user_id'] . "'");
  16. $user_group_query = $this->db->query("SELECT permission FROM " . DB_PREFIX . "user_group WHERE user_group_id = '" . (int)$user_query->row['user_group_id'] . "'");
  17. $permissions = unserialize($user_group_query->row['permission']);
  18. if (is_array($permissions)) {
  19. foreach ($permissions as $key => $value) {
  20. $this->permission[$key] = $value;
  21. }
  22. }
  23. } else {
  24. $this->logout();
  25. }
  26. }
  27. }
  28. public function login($username, $password) {
  29. $user_query = $this->db->query("SELECT * FROM " . DB_PREFIX . "user WHERE username = '" . $this->db->escape($username) . "' AND password = '" . $this->db->escape(md5($password)) . "' AND status = '1'");
  30. if ($user_query->num_rows) {
  31. $this->session->data['user_id'] = $user_query->row['user_id'];
  32. $this->user_id = $user_query->row['user_id'];
  33. $this->username = $user_query->row['username'];
  34. $user_group_query = $this->db->query("SELECT permission FROM " . DB_PREFIX . "user_group WHERE user_group_id = '" . (int)$user_query->row['user_group_id'] . "'");
  35. $permissions = unserialize($user_group_query->row['permission']);
  36. if (is_array($permissions)) {
  37. foreach ($permissions as $key => $value) {
  38. $this->permission[$key] = $value;
  39. }
  40. }
  41. return true;
  42. } else {
  43. return false;
  44. }
  45. }
  46. public function logout() {
  47. unset($this->session->data['user_id']);
  48. $this->user_id = '';
  49. $this->username = '';
  50. session_destroy();
  51. }
  52. public function hasPermission($key, $value) {
  53. if (isset($this->permission[$key])) {
  54. return in_array($value, $this->permission[$key]);
  55. } else {
  56. return false;
  57. }
  58. }
  59. public function isLogged() {
  60. return $this->user_id;
  61. }
  62. public function getId() {
  63. return $this->user_id;
  64. }
  65. public function getUserName() {
  66. return $this->username;
  67. }
  68. }
  69. ?>