/** * This function determines whether an there is a currently logged in * Author for Symphony by using the `$Cookie`'s username * and password. If an Author is found, they will be logged in, otherwise * the `$Cookie` will be destroyed. * * @see core.Cookie#expire() */ public function isLoggedIn() { // Ensures that we're in the real world.. Also reduces three queries from database // We must return true otherwise exceptions are not shown if (is_null(self::$_instance)) { return true; } if ($this->Author) { return true; } else { $username = self::Database()->cleanValue($this->Cookie->get('username')); $password = self::Database()->cleanValue($this->Cookie->get('pass')); if (strlen(trim($username)) > 0 && strlen(trim($password)) > 0) { $author = AuthorManager::fetch('id', 'ASC', 1, null, sprintf("\n\t\t\t\t\t\t\t`username` = '%s'\n\t\t\t\t\t\t", $username)); if (!empty($author) && Cryptography::compare($password, current($author)->get('password'), true)) { $this->Author = current($author); self::Database()->update(array('last_seen' => DateTimeObj::get('Y-m-d H:i:s')), 'tbl_authors', sprintf(" `id` = %d", $this->Author->get('id'))); // Only set custom author language in the backend if (class_exists('Administration')) { Lang::set($this->Author->get('language')); } return true; } } $this->Cookie->expire(); return false; } }
/** * This function determines whether an there is a currently logged in * Author for Symphony by using the `$Cookie`'s username * and password. If an Author is found, they will be logged in, otherwise * the `$Cookie` will be destroyed. * * @see core.Cookie#expire() */ public function isLoggedIn() { // Ensures that we're in the real world.. Also reduces three queries from database // We must return true otherwise exceptions are not shown if (is_null(self::$_instance)) { return true; } if ($this->Author) { return true; } else { $username = self::$Database->cleanValue($this->Cookie->get('username')); $password = self::$Database->cleanValue($this->Cookie->get('pass')); if (strlen(trim($username)) > 0 && strlen(trim($password)) > 0) { $id = self::$Database->fetchVar('id', 0, "SELECT `id` FROM `tbl_authors` WHERE `username` = '{$username}' AND `password` = '{$password}' LIMIT 1"); if ($id) { self::$Database->update(array('last_seen' => DateTimeObj::get('Y-m-d H:i:s')), 'tbl_authors', " `id` = '{$id}'"); $this->Author = AuthorManager::fetchByID($id); Lang::set($this->Author->get('language')); return true; } } $this->Cookie->expire(); return false; } }
public function login($token, $remember = false, $cookiePath = '/') { $this->token = $token; Session::set(self::SESSION_NAME, $token); if ($remember) { Cookie::set(self::COOKIE_NAME, $token, Cookie::expire('365', 'd'), $cookiePath); } return true; }
/** * This function will destroy the currently logged in `$Author` * session, essentially logging them out. * * @see core.Cookie#expire() */ public static function logout() { self::$Cookie->expire(); }
private function __expireCookie() { session_destroy(); $Cookie = new Cookie(__SYM_COOKIE_PREFIX_ . 'front-end-authentication', 24 * 60 * 60, __SYM_COOKIE_PATH__); $Cookie->expire(); }
public function frontendPageResolved($context) { if (isset($_REQUEST['github-oauth-action']) && isset($_REQUEST['github-oauth-action']) == 'logout') { $cookie = new Cookie('github'); $cookie->expire(); if (isset($_REQUEST['redirect'])) { redirect($_REQUEST['redirect']); } redirect(URL); } }