X-Git-Url: https://git.mxchange.org/?p=shipsimu.git;a=blobdiff_plain;f=application%2Fship-simu%2Fmain%2Fregistration%2Fclass_ShipSimuRegistration.php;h=5778665388ab19a56880d639541ed25f3eb703de;hp=252d05df20457e27e37311af7fe3ff711db0c5ea;hb=5bf79580029c4f6ee71e6c9e7890169e4b344def;hpb=fe76c3626828df10434f15c67a613d8f5d27ff20 diff --git a/application/ship-simu/main/registration/class_ShipSimuRegistration.php b/application/ship-simu/main/registration/class_ShipSimuRegistration.php index 252d05d..5778665 100644 --- a/application/ship-simu/main/registration/class_ShipSimuRegistration.php +++ b/application/ship-simu/main/registration/class_ShipSimuRegistration.php @@ -1,10 +1,10 @@ * @version 0.0.0 - * @copyright Copyright(c) 2007, 2008 Roland Haeder, this is free software + * @copyright Copyright (c) 2007, 2008 Roland Haeder, this is free software * @license GNU GPL 3.0 or any newer version * @link http://www.ship-simu.org * @@ -21,12 +21,31 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -class ShipSimuRegistration extends BaseRegistration { +class ShipSimuRegistration extends BaseRegistration implements UserRegister { /** * Hashed password */ private $hashedPassword = ""; + /** + * Elements for criteria + */ + private $criteriaElements = array( + 'username', + 'pass_hash', + 'email' => 'email1', + 'surname', + 'family', + 'street', + 'zip', + 'city', + 'icq', + 'jabber', + 'yahoo', + 'aol', + 'msn' + ); + /** * Protected constructor * @@ -35,12 +54,6 @@ class ShipSimuRegistration extends BaseRegistration { protected function __construct () { // Call parent constructor parent::__construct(__CLASS__); - - // Set part description - $this->setObjectDescription("Ship-Simu registration class"); - - // Create unique ID number - $this->createUniqueID(); } /** @@ -60,22 +73,25 @@ class ShipSimuRegistration extends BaseRegistration { } /** - * Encrypt the given request key or throw an exception if the key was not - * found in the request + * Encrypt given request key or throw an exception if key was not found in + * request * * @param $requestKey Key in request class * @return void */ public function encryptPassword ($requestKey) { - // Check if the password is found in the request + // Check if password is found in request if ($this->getRequestInstance()->isRequestElementSet($requestKey)) { // So encrypt the password and store it for later usage in // the request: + // 1.: Get the plain password $plainPassword = $this->getRequestInstance()->getRequestElement($requestKey); + // 2. Get a crypto helper and hash the password - $this->hashedPassword = ObjectFactory::createObjectByConfiguredName('crypto_heler')->hashPassword($plainPassword); - // 3. Store the hash back in the request + $this->hashedPassword = ObjectFactory::createObjectByConfiguredName('crypto_class')->hashString($plainPassword); + + // 3. Store the hash back in request $this->getRequestInstance()->setRequestElement('pass_hash', $this->hashedPassword); } } @@ -85,6 +101,7 @@ class ShipSimuRegistration extends BaseRegistration { * before registration * * @return void + * @todo Maybe add more things to perform */ public function doPreRegistration () { // First run all pre filters @@ -96,15 +113,21 @@ class ShipSimuRegistration extends BaseRegistration { * database and paying some start credits or throw exceptions if this fails * * @return void + * @todo Maybe add more things to perform */ public function registerNewUser () { - $this->partialStub(); + // Get a user database wrapper + $wrapperInstance = ObjectFactory::createObjectByConfiguredName('user_db_wrapper_class'); + + // Use this instance to insert the whole registration instance + $wrapperInstance->insertRegistrationObject($this); } /** * Perform things like notifying partner websites after registration is done * * @return void + * @todo Maybe add more things to perform */ public function doPostRegistration () { // First run all post filters @@ -119,7 +142,55 @@ class ShipSimuRegistration extends BaseRegistration { * @return void */ public function doPostAction () { - $this->partialStub(); + // Get an action instance from our factory + $actionInstance = ObjectFactory::createObjectByConfiguredName('post_registration_class'); + + // Execute the action + $actionInstance->execute($this->getRequestInstance(), $this->getResponseInstance()); + } + + /** + * Adds registration elements to a given dataset instance + * + * @param $criteriaInstance An instance of a storeable criteria + * @return void + */ + public function addElementsToDataSet (StoreableCriteria $criteriaInstance) { + // Default is unconfirmed! + $configEntry = 'user_status_unconfirmed'; + + // Is the confirmation process entirely disabled? + if ($this->getConfigInstance()->readConfig('confirm_email_enabled') === "N") { + // No confirmation of email needed + $configEntry = 'user_status_confirmed'; + } // END - if + + // Add a lot elements to the dataset criteria + foreach ($this->criteriaElements as $alias => $element) { + // Do we have an alias? + if (is_string($alias)) { + // Yes, so use it + $criteriaInstance->addCriteria($alias, $this->getRequestInstance()->getRequestElement($element)); + } else { + // No, default entry + $criteriaInstance->addCriteria($element, $this->getRequestInstance()->getRequestElement($element)); + } + + // Is this a guest account? + if ((($element == "username") || ($alias == "username")) && ($this->getRequestInstance()->getRequestElement($element) == $this->getConfigInstance()->readConfig('guest_login_user'))) { + // Yes, then set the config entry to guest status + $configEntry = 'user_status_guest'; + } // END - if + } // END - foreach + + // Mark the username as unique key + $criteriaInstance->setUniqueKey(UserDatabaseWrapper::DB_COLUMN_USERNAME); + + // Add account status as configured + $criteriaInstance->addConfiguredCriteria(UserDatabaseWrapper::DB_COLUMN_USER_STATUS, $configEntry); + + // Include registration timestamp + $criteriaInstance->addCriteria("registered", date("Y-m-d H:i:s", time())); } }