X-Git-Url: https://git.mxchange.org/?p=shipsimu.git;a=blobdiff_plain;f=application%2Fshipsimu%2Fclasses%2Fuser%2Fextended%2Fclass_ShipSimuGuest.php;fp=application%2Fshipsimu%2Fclasses%2Fuser%2Fextended%2Fclass_ShipSimuGuest.php;h=a66de18e3f1d59aa8e919e9cc90c6f9dd5c9b1f1;hp=0000000000000000000000000000000000000000;hb=bacc5f4ac0c29e8d038e8cb3938eab902f9e96ca;hpb=c05766cedd51503851746bbb7b5fb8d2f3e87a74 diff --git a/application/shipsimu/classes/user/extended/class_ShipSimuGuest.php b/application/shipsimu/classes/user/extended/class_ShipSimuGuest.php new file mode 100644 index 0000000..a66de18 --- /dev/null +++ b/application/shipsimu/classes/user/extended/class_ShipSimuGuest.php @@ -0,0 +1,108 @@ + + * @version 0.0.0 + * @copyright Copyright (c) 2007, 2008 Roland Haeder, 2009 Ship-Simu Developer Team + * @license GNU GPL 3.0 or any newer version + * @link http://www.shipsimu.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 ShipSimuGuest extends ShipSimuBaseUser implements ManageableGuest { + // Exceptions + const EXCEPTION_USERNAME_NOT_FOUND = 0x170; + const EXCEPTION_USER_EMAIL_NOT_FOUND = 0x171; + const EXCEPTION_USER_PASS_MISMATCH = 0x172; + + /** + * Protected constructor + * + * @param $className Name of the class + * @return void + */ + protected function __construct ($className = __CLASS__) { + // Call parent constructor + parent::__construct($className); + } + + /** + * Creates an instance of this user class by a provided username. This + * factory method will check if username is already taken and if not + * so it will throw an exception. + * + * @param $userName Username we need a class instance for + * @return $userInstance An instance of this user class + * @throws UsernameMissingException If the username does not exist + */ + public static final function createGuestByUsername ($userName) { + // Get a new instance + $userInstance = new ShipSimuGuest(); + + // Set the username + $userInstance->setUserName($userName); + + // Check if username exists + if ($userInstance->ifUsernameExists() === false) { + // Throw an exception here + throw new UsernameMissingException(array($userInstance, $userName), self::EXCEPTION_USERNAME_NOT_FOUND); + } // END - if + + // Return the instance + return $userInstance; + } + + /** + * Creates an instance of this user class by a provided email address. This + * factory method will not check if email address is there. + * + * @param $email Email address of the user + * @return $userInstance An instance of this user class + */ + public static final function createGuestByEmail ($email) { + // Get a new instance + $userInstance = new ShipSimuGuest(); + + // Set the username + $userInstance->setEmail($email); + + // Return the instance + return $userInstance; + } + + /** + * Updates the last activity timestamp and last performed action in the + * database result. You should call flushPendingUpdates() to flush these updates + * to the database layer. + * + * @param $requestInstance A requestable class instance + * @return void + */ + public function updateLastActivity (Requestable $requestInstance) { + // No activity will be logged for guest accounts + } + + /** + * Flushs all pending updates to the database layer + * + * @return void + */ + public function flushPendingUpdates () { + // No updates will be flushed to database! + } +} + +// [EOF] +?>