/** * * @param string $username * @param string $password * @param array $options * @return mixed True = logged in, false = invalid password, null = not logged in */ public static function login($username = null, $password = null, $options = array()) { $options += array('remember' => true); $remember = SlConfigure::read('Auth.options.remember'); if ($username) { // normal login $success = self::_login($username, $password); if ($success && $options['remember'] && $remember) { SlCookie::write('Auth.user', compact('username', 'password'), true, $remember); } return $success; } else { // autologin $user = SlCookie::read('Auth.user'); if ($user) { if (self::_login($user['username'], $user['password'])) { SlConfigure::setCollections(); return true; } } } self::logout(); }
protected static function _load() { self::$_loaded = true; // load core configurations self::load('default.php'); // load extensions' configurations SlExtensions::getInstance(); if (!self::load('site.php')) { self::load('site.sample.php'); $isHtml = isset($_GET['url']) && !preg_match('!(^|/)(js|css|img)/|\\.(rss|xml|atom)|/isAjax:1$!', '/' . $_GET['url']); if (!Configure::read() && $isHtml && env('HTTP_X_REQUESTED_WITH') !== "XMLHttpRequest") { self::write('Message.noConfig', '<b>Site configuration file not found!</b><br />Please create <em>/app/config/site.php</em>. You may use <em>/app/config/site.sample.php</em> as a template.'); } } self::$_persistentData = self::load(TMP . 'sl_configuration.php'); if (SlSession::started()) { self::$_data['session'] =& SlSession::$data; } SlCookie::ready(); self::setCollections(); Sl::setLocale(); // If you are on PHP 5.3 correct your server timezone to fix the date & time related errors. $tz = self::read('I18n.options.timeZone'); if ($tz) { date_default_timezone_set($tz); } }
public function destroy() { return SlCookie::clear(); }
public static function clear() { self::ready(); foreach (self::$_cookies as $name) { self::delete($name); } self::$_cookies = array(); }
/** * Set current language * * @param string $lang * @return bool Success */ public static function setLocale($lang = null, $setCookie = false) { $locales = SlConfigure::read('I18n.locales'); if (empty($locales)) { $languages = SlConfigure::read1('I18n.languages'); $langs = array_keys($languages); $locales = array(); $catalogs = array(); if (!$langs) { $langs = array('en'); } App::import('Core', 'l10n'); $l10n = new L10n(); foreach ($langs as $lang_) { $catalog = $l10n->catalog($lang_); if ($catalog) { $catalogs[$lang_] = $catalog; $locales[$lang_] = $catalog['locale']; } } $langs = array_keys($locales); SlConfigure::write('I18n.langs', $langs); SlConfigure::write('I18n.catalogs', $catalogs); SlConfigure::write('I18n.locales', $locales); if (empty($lang)) { $lang = SlCookie::read('I18n.lang'); // guess language based on Accept-Language header if (empty($lang)) { $envLangs = explode(',', env('HTTP_ACCEPT_LANGUAGE')); foreach ($envLangs as $envLang) { list($envLang) = explode(';', $envLang); if (isset($locales[$envLang])) { $lang = $envLang; break; } } if (empty($lang)) { $lang = SlConfigure::read('I18n.lang'); } } // convert locale_id to lang_id $lang_ = array_search($lang, $locales); if ($lang_) { $lang = $lang_; } if (empty($lang) || !isset($locales[$lang])) { $lang = $langs[0]; } } } else { $catalogs = SlConfigure::read('I18n.catalogs'); } if ($lang) { // convert locale_id to lang_id $lang_ = array_search($lang, $locales); if ($lang_) { $lang = $lang_; } if (isset($locales[$lang])) { SlConfigure::write('I18n.lang', $lang); SlConfigure::write('I18n.catalog', $catalogs[$lang]); SlConfigure::write('I18n.locale', $locales[$lang]); Configure::write('Config.language', $locales[$lang]); if ($setCookie) { SlCookie::write('I18n.lang', $lang, false, "+1 year"); } SlConfigure::localeChanged(); return true; } } return false; }