public function beforeFilter() { SlConfigure::setCollections(); if (isset($this->data[$this->modelClass]['id'])) { $this->id = $this->data[$this->modelClass]['id']; } elseif (isset($this->params['pass'][0])) { $this->id = $this->params['pass'][0]; } if (!empty($this->params['named']['ref'])) { SlSession::write('Routing.ref', base64_decode($this->params['named']['ref'])); } // Make AJAX errors and warnings readable if (class_exists('Debugger')) { if ($this->RequestHandler->isAjax()) { Debugger::output('base'); } } // update current language if (!empty($this->params['named']['lang'])) { $this->params['lang'] =& $this->params['named']['lang']; } if (!empty($this->params['lang'])) { Sl::setLocale($this->params['lang'], true); } $languages = SlConfigure::read('I18n.languages'); $currLang = SlConfigure::read('I18n.lang'); $languageLinks = array(); foreach ($languages as $lang => $language) { $languageLinks[$lang] = array('title' => $language, 'active' => $lang == $currLang, 'url' => am($this->passedArgs, array('action' => $this->action, 'lang' => $lang))); } SlConfigure::write('Navigation.languages', $languageLinks); }
/** * * @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(); }