public function __construct() { $guest['user'] = array('id' => 0, 'username' => 'Guest', 'theme' => $this->config('site', 'theme'), 'timezone' => isset($_SESSION['user']) ? doArgs('timezone', $this->config('time', 'timezone'), $_SESSION['user']) : $this->config('time', 'timezone'), 'userkey' => doArgs('userkey', null, $_SESSION['user'])); // Get the Page Object $objPage = Core_Classes_coreObj::getPage(); self::addConfig(array('global' => array('user' => isset($_SESSION['user']['id']) ? $_SESSION['user'] : $guest['user'], 'ip' => Core_Classes_User::getIP(), 'useragent' => doArgs('HTTP_USER_AGENT', null, $_SERVER), 'browser' => getBrowser($_SERVER['HTTP_USER_AGENT']), 'platform' => $objPage->getCSSSelectors($_SERVER['HTTP_USER_AGENT']), 'language' => 'en', 'secure' => isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === true ? true : false, 'referer' => doArgs('HTTP_REFERER', null, $_SERVER), 'realPath' => realpath('') . '/', 'rootPath' => '/' . root(), 'fullPath' => $_SERVER['REQUEST_URI'], 'rootUrl' => (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === true ? 'https' : 'http') . '://' . $_SERVER['HTTP_HOST'] . '/' . root(), 'url' => (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === true ? 'https' : 'http') . '://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'])), 'user'); $user = $this->config('global', 'user'); $this->setIsOnline(!($user['id'] == 0 ? true : false)); $this->initPerms(); }
/** * Checks the whitelist associated with an account * * @version 1.2 * @since 1.0.0 * @author Daniel Noel-Davies * * @return bool */ public function whiteListCheck() { if (!$this->userData['whitelist'] || is_empty($this->userData['whitelisted_ips'])) { return true; } $ip = Core_Classes_User::getIP(); $whitelist = json_decode($this->userData['whitelisted_ips']); if (!is_array($whitelist) || is_empty($whitelist)) { return true; } foreach ($whitelist as $range) { if (checkIPRange($range, $ip)) { return true; } } return false; }
/** * Loads an already active session for this user * * @version 1.0 * @since 1.0.0 * @author Dan Aldridge * */ public function getData() { $objSQL = Core_Classes_coreObj::getDBO(); $query = $objSQL->queryBuilder()->select('*')->from('#__sessions')->where('admin', '=', Core_Classes_User::$IS_ADMIN ? '1' : '0')->andWhere('sid', '=', md5(session_id()))->andWhere('hostname', '=', Core_Classes_User::getIP())->build(); $results = $objSQL->fetchLine($query); if ($objSQL->affectedRows() > 0) { return $results; } return false; }