public static function load() { // Make sure the database is loaded if (!Database::$database) { return false; } // If you are logged in, run a "remember me" check if (!isset($_SESSION['uni_id'])) { return false; } // Set your session ID, which corresponds to your database user ID self::$id = $_SESSION['uni_id']; // Prepare the columns to receive if (!self::$getColumns) { self::$getColumns = "uni_id, role, clearance, handle, display_name, date_joined"; } // Retrieve the active user from the database - the user doesn't exist in the database, register them if (!(self::$vals = Database::selectOne("SELECT " . self::$getColumns . " FROM users WHERE uni_id=? LIMIT 1", array(self::$id)))) { // Make sure appropriate registration values are sent if (!isset($_SESSION['uni_id']) or !isset($_SESSION['user']['handle']) or !isset($_SESSION['user']['display_name'])) { return false; } // Set timezone to empty if not sent if (!isset($_SESSION['user']['timezone'])) { $_SESSION['user']['timezone'] = ""; } // Register User (if necessary) if (!Register::user($_SESSION['user']['uni_id'], $_SESSION['user']['handle'], $_SESSION['user']['display_name'], $_SESSION['user']['timezone'])) { return false; } // Try to load the user again (after registration) if (!(self::$vals = Database::selectOne("SELECT " . self::$getColumns . " FROM users WHERE uni_id=? LIMIT 1", array(self::$id)))) { return false; } } // Save your Clearance Level self::$clearance = (int) self::$vals['clearance']; // Handle Banned Accounts if (self::$clearance <= -3) { header("Location: /banned"); exit; } // Occasionally log activity (handles auro allotment) if (mt_rand(0, 25) == 22) { self::logActivity(); } return true; }