3 * A cookie-bases login class
5 * @author Roland Haeder <webmaster@ship-simu.org>
7 * @copyright Copyright(c) 2007, 2008 Roland Haeder, this is free software
8 * @license GNU GPL 3.0 or any newer version
9 * @link http://www.ship-simu.org
11 * This program is free software: you can redistribute it and/or modify
12 * it under the terms of the GNU General Public License as published by
13 * the Free Software Foundation, either version 3 of the License, or
14 * (at your option) any later version.
16 * This program is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU General Public License for more details.
21 * You should have received a copy of the GNU General Public License
22 * along with this program. If not, see <http://www.gnu.org/licenses/>.
24 class CookieLogin extends BaseFrameworkSystem implements Registerable {
28 private $responseInstance = null;
31 * Protected constructor
35 protected function __construct () {
36 // Call parent constructor
37 parent::__construct(__CLASS__);
39 // Set part description
40 $this->setObjectDescription("Cookie-based login");
42 // Create unique ID number
43 $this->generateUniqueId();
46 $this->removeNumberFormaters();
47 $this->removeSystemArray();
51 * Creates an instance of this class by the given response instance
53 * @param $responseInstance An instance of a Responseable class
54 * @return $loginInstance An instance of this login class
56 public final static function createCookieLogin (Responseable $responseInstance) {
58 $loginInstance = new CookieLogin();
60 // Set the response instance
61 $loginInstance->setResponseInstance($responseInstance);
63 // Return the prepared instance
64 return $loginInstance;
68 * Setter for login instance
70 * @param $responseInstance An instance of a Responseable class
73 protected final function setResponseInstance (Responseable $responseInstance) {
74 $this->responseInstance = $responseInstance;
78 * "Setter" for username auth data
80 * @param $userName The username from request we shall set
83 public function setUserAuth ($userName) {
84 $this->responseInstance->addCookie('username', $userName);
88 * "Setter" for password hash auth data
90 * @param $passHash The hashed password from request we shall set
93 public function setPasswordAuth ($passHash) {
94 $this->responseInstance->addCookie('u_hash', $passHash, true);