* @version 0.0.0 * @copyright Copyright (c) 2007 - 2009 Roland Haeder, this is free software * @license GNU GPL 3.0 or any newer version * @link http://www.ship-simu.org * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ class CookieAuth extends BaseFrameworkSystem implements Authorizeable, Registerable { /** * Protected constructor * * @return void */ protected function __construct () { // Call parent constructor parent::__construct(__CLASS__); // Clean up a little $this->removeNumberFormaters(); $this->removeSystemArray(); } /** * Creates an instance of this class by the given response instance * * @param $responseInstance An instance of a Responseable class * @return $loginInstance An instance of this login class */ public final static function createCookieAuth (Responseable $responseInstance) { // Get a new instance $loginInstance = new CookieAuth(); // Set the response instance $loginInstance->setResponseInstance($responseInstance); // Return the prepared instance return $loginInstance; } /** * "Setter" for username auth data * * @param $userName The username from request we shall set * @return void */ public function setUserAuth ($userName) { $this->getResponseInstance()->addCookie('username', $userName); } /** * "Setter" for password hash auth data * * @param $passHash The hashed password from request we shall set * @return void */ public function setPasswordAuth ($passHash) { $this->getResponseInstance()->addCookie('u_hash', $passHash, true); } /** * Getter for user auth cookie * * @return $userName Username to get from cookie */ public function getUserAuth () { // Get the username from cookie $userName = $this->getRequestInstance()->readCookie('username'); // Return the username return $userName; } /** * Getter for password hash auth cookie * * @return $passHash Password hash to get from cookie */ public function getPasswordAuth () { // Get the username from cookie $passHash = $this->getRequestInstance()->readCookie('u_hash'); // Return the username return $passHash; } /** * Destroy the authorization data * * @return void */ public function destroyAuthData () { // Expire both cookies $this->getResponseInstance()->expireCookie('username'); $this->getResponseInstance()->expireCookie('u_hash'); } /** * Updates the authorization data and/or sets additional tracking data * * @param $requestInstance An instance of a Requestable class * @return void */ public function updateAuthData () { $this->getResponseInstance()->refreshCookie('username'); $this->getResponseInstance()->refreshCookie('u_hash'); } } // [EOF] ?>