"OdenseTrack" is a school assignment/project from AspIT https://aspit.dfine.net/odensetrack
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

user.class.php 2.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. <?php
  2. class User {
  3. public static function hashPass($password) {
  4. return password_hash($password, PASSWORD_ARGON2I);
  5. }
  6. private static function verifyPass($password, $hash) {
  7. if (password_verify($password, $hash)) {
  8. return true;
  9. } else {
  10. return false;
  11. }
  12. }
  13. public static function checkLogin() {
  14. if (isset($_SESSION['user'])) {
  15. $db = new DBClass();
  16. $query = "SELECT * FROM `" . Config::$db_tableusers . "` WHERE `id` = '" . $_SESSION['user'] . "'";
  17. if ($db->numRows($db->query($query)) != 1) {
  18. return false;
  19. } else {
  20. return true;
  21. }
  22. } else {
  23. return false;
  24. }
  25. }
  26. public static function checkLevel($requiredlevel) {
  27. if (User::checkLogin()) { // We are logged in, lets continue this check
  28. $db = new DBClass();
  29. $query = "SELECT level FROM `" . Config::$db_tableusers . "` WHERE `id` = '" . $_SESSION['user'] . "'";
  30. $result = $db->fetchAll($db->query($query))[0];
  31. if ($result['level'] >= $requiredlevel) { // OK, our user DOES have the required level, return true
  32. return true;
  33. } else { // User was authenticated, but doesnt have the required level
  34. return false;
  35. }
  36. } else { // If user wasnt logged in, we return false
  37. return false;
  38. }
  39. }
  40. public static function userLevel() {
  41. // _SESSION['userlevel'] shows users current level. 50 = admin, 80 = leadadmin 100 = sysop
  42. if (!isset($_SESSION['lvl'])) {
  43. return 0;
  44. } else {
  45. $level = $_SESSION['lvl'];
  46. $db = new DBClass();
  47. $query = "SELECT * FROM `" . Config::$db_tableusers . "` WHERE `id` = '" . $_SESSION['user'] . "' AND `level` = '" . $level . "'";
  48. // We check the userlevel, and verifies that the userlevel exist on the user.
  49. if ($db->numRows($db->query($query)) != 1) {
  50. return 0;
  51. } else {
  52. return $level;
  53. }
  54. }
  55. }
  56. }