示例#1
0
 public static function user($uniID, $remember = false)
 {
     // Set the appropriate UniID
     $_SESSION['uni_id'] = $uniID;
     // Load Your Data
     Me::$getColumns = "*";
     // Retrieve all of your data during login
     Me::load($uniID);
     if (Me::$id == 0) {
         return false;
     }
     // Prepare User Session
     if (isset($_SESSION[SITE_HANDLE]['site_login'])) {
         // This retains the site login redirection for UniFaction (Auth)
         $_SESSION[SITE_HANDLE] = array("site_login" => $_SESSION[SITE_HANDLE]['site_login']);
     } else {
         $_SESSION[SITE_HANDLE] = array();
     }
     $_SESSION[SITE_HANDLE]['id'] = Me::$id;
     // Required to load user each page.
     // Update the last login time (to right now)
     Database::query("UPDATE users SET date_lastLogin=? WHERE uni_id=? LIMIT 1", array(time(), Me::$id));
     // Set "Remember Me" cookie if applicable
     if ($remember) {
         // Me::setCookie();
     }
     return true;
 }
示例#2
0
 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;
 }