X-Git-Url: https://git.mxchange.org/?p=hub.git;a=blobdiff_plain;f=inc%2Fclasses%2Fmain%2Fuser%2Fclass_BaseUser.php;fp=inc%2Fclasses%2Fmain%2Fuser%2Fclass_BaseUser.php;h=0000000000000000000000000000000000000000;hp=b00a0730f4cfe6b1d4da5cc1057e25730e8f87bf;hb=7150c6d1a1e3c91d3cfd2e732b26bbe9f0dc4f57;hpb=12dbc1af8f0bc2981711b17c7c955f270c440b35 diff --git a/inc/classes/main/user/class_BaseUser.php b/inc/classes/main/user/class_BaseUser.php deleted file mode 100644 index b00a0730f..000000000 --- a/inc/classes/main/user/class_BaseUser.php +++ /dev/null @@ -1,340 +0,0 @@ - - * @version 0.0.0 - * @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 - * - * 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 BaseUser extends BaseFrameworkSystem { - // Exception constances - const EXCEPTION_USERNAME_NOT_FOUND = 0x150; - const EXCEPTION_USER_EMAIL_NOT_FOUND = 0x151; - const EXCEPTION_USER_PASS_MISMATCH = 0x152; - - /** - * Username of current user - */ - private $userName = ""; - - /** - * User id of current user - */ - private $userId = 0; - - /** - * Email of current user - */ - private $email = ""; - - /** - * Protected constructor - * - * @param $className Name of the class - * @return void - */ - protected function __construct ($className) { - // Call parent constructor - parent::__construct($className); - - // Clean up a little - $this->removeNumberFormaters(); - $this->removeSystemArray(); - } - - /** - * Setter for username - * - * @param $userName The username to set - * @return void - */ - public final function setUserName ($userName) { - $this->userName = (string) $userName; - } - - /** - * Getter for username - * - * @return $userName The username to get - */ - public final function getUserName () { - return $this->userName; - } - - /** - * Setter for user id - * - * @param $userId The user id to set - * @return void - * @todo Find a way of casting here. "(int)" might destroy the user id > 32766 - */ - public final function setUserId ($userId) { - $this->userId = $userId; - } - - /** - * Getter for user id - * - * @return $userId The user id to get - */ - public final function getUserId () { - return $this->userId; - } - - /** - * Setter for email - * - * @param $email The email to set - * @return void - */ - protected final function setEmail ($email) { - $this->email = (string) $email; - } - - /** - * Getter for email - * - * @return $email The email to get - */ - public final function getEmail () { - return $this->email; - } - - /** - * Determines wether the username exists or not - * - * @return $exists Wether the username exists - */ - public function ifUsernameExists () { - // By default the username does not exist - $exists = false; - - // Is a previous result there? - if (is_null($this->getResultInstance())) { - // Get a UserDatabaseWrapper instance - $wrapperInstance = ObjectFactory::createObjectByConfiguredName('user_db_wrapper_class'); - - // Create a search criteria - $criteriaInstance = ObjectFactory::createObjectByConfiguredName('search_criteria_class'); - - // Add the username as a criteria and set limit to one entry - $criteriaInstance->addCriteria(UserDatabaseWrapper::DB_COLUMN_USERNAME, $this->getUserName()); - $criteriaInstance->setLimit(1); - - // Get a search result - $resultInstance = $wrapperInstance->doSelectByCriteria($criteriaInstance); - - // Set the index "solver" - $resultInstance->solveResultIndex(UserDatabaseWrapper::DB_COLUMN_USERID, $wrapperInstance, array($this, 'setUserId')); - - // And finally set it - $this->setResultInstance($resultInstance); - } // END - if - - // Rewind it - $this->getResultInstance()->rewind(); - - // Search for it - if ($this->getResultInstance()->next()) { - // Entry found - $exists = true; - } // END - if - - // Return the status - return $exists; - } - - /** - * Determines wether the email exists or not - * - * @return $exists Wether the email exists - */ - public function ifEmailAddressExists () { - // By default the email does not exist - $exists = false; - - // Is a previous result there? - if (is_null($this->getResultInstance())) { - // Get a UserDatabaseWrapper instance - $wrapperInstance = ObjectFactory::createObjectByConfiguredName('user_db_wrapper_class'); - - // Create a search criteria - $criteriaInstance = ObjectFactory::createObjectByConfiguredName('search_criteria_class'); - - // Add the username as a criteria and set limit to one entry - $criteriaInstance->addCriteria(UserDatabaseWrapper::DB_COLUMN_EMAIL, $this->getEmail()); - $criteriaInstance->setLimit(1); - - // Get a search result - $resultInstance = $wrapperInstance->doSelectByCriteria($criteriaInstance); - - // Set the index "solver" - $resultInstance->solveResultIndex(UserDatabaseWrapper::DB_COLUMN_USERID, $wrapperInstance, array($this, 'setUserId')); - - // And finally set it - $this->setResultInstance($resultInstance); - } // END - if - - // Rewind it - $this->getResultInstance()->rewind(); - - // Search for it - if ($this->getResultInstance()->next()) { - // Entry found - $exists = true; - - // Is the username set? - if ($this->getUserName() == "") { - // Get current entry - $currEntry = $this->getResultInstance()->current(); - - // Set the username - $this->setUserName($currEntry['username']); - } // END - if - } // END - if - - // Return the status - return $exists; - } - - /** - * Checks if supplied password hash in request matches with the stored in - * database. - * - * @param $requestInstance A requestable class instance - * @return $matches Wether the supplied password hash matches - */ - public function ifPasswordHashMatches (Requestable $requestInstance) { - // By default nothing matches... ;) - $matches = false; - - // Is a previous result there? - if (is_null($this->getResultInstance())) { - // Get a UserDatabaseWrapper instance - $wrapperInstance = ObjectFactory::createObjectByConfiguredName('user_db_wrapper_class'); - - // Create a search criteria - $criteriaInstance = ObjectFactory::createObjectByConfiguredName('search_criteria_class'); - - // Add the username as a criteria and set limit to one entry - $criteriaInstance->addCriteria(UserDatabaseWrapper::DB_COLUMN_USERNAME, $this->getUserName()); - $criteriaInstance->setLimit(1); - - // Get a search result - $resultInstance = $wrapperInstance->doSelectByCriteria($criteriaInstance); - - // Set the index "solver" - $resultInstance->solveResultIndex(UserDatabaseWrapper::DB_COLUMN_USERID, $wrapperInstance, array($this, 'setUserId')); - - // And finally set it - $this->setResultInstance($resultInstance); - } // END - if - - // Rewind it - $this->getResultInstance()->rewind(); - - // Search for it - if ($this->getResultInstance()->find('pass_hash')) { - // So does the hashes match? - //* DEBUG: */ echo $requestInstance->getRequestElement('pass_hash')."/".$entry['pass_hash']; - $matches = ($requestInstance->getRequestElement('pass_hash') === $this->getResultInstance()->getFoundValue()); - } // END - if - - // Return the status - return $matches; - } - - /** - * "Getter" for user's password hash - * - * @return $passHash User's password hash from database result - */ - public final function getPasswordHash () { - // Default is missing password hash - $passHash = null; - - // Get a database entry - $entry = $this->getDatabaseEntry(); - - // Is the password hash there? - if (isset($entry['pass_hash'])) { - // Get it - $passHash = $entry['pass_hash']; - } // END - if - - // And return the hash - return $passHash; - } - - /** - * Getter for primary key value - * - * @return $primaryValue Value of the primary key based on database type - */ - public final function getPrimaryKey () { - // Get a user database wrapper - $wrapperInstance = ObjectFactory::createObjectByConfiguredName('user_db_wrapper_class'); - - // Get the primary key back from the wrapper - $primaryKey = $wrapperInstance->getPrimaryKeyValue(); - - // Get that field - $primaryValue = $this->getField($primaryKey); - - // Return the value - return $primaryValue; - } - - /** - * Updates a given field with new value - * - * @param $fieldName Field to update - * @param $fieldValue New value to store - * @return void - * @throws DatabaseUpdateSupportException If this class does not support database updates - */ - public function updateDatabaseField ($fieldName, $fieldValue) { - // Is updating database fields allowed by interface? - if (!$this instanceof Updateable) { - // Update not supported! - throw new DatabaseUpdateSupportException($this, self::EXCEPTION_DATABASE_UPDATED_NOT_ALLOWED); - } // END - if - - // Get a critieria instance - $searchInstance = ObjectFactory::createObjectByConfiguredName('search_criteria_class'); - - // Add search criteria - $searchInstance->addCriteria(UserDatabaseWrapper::DB_COLUMN_USERNAME, $this->getUserName()); - $searchInstance->setLimit(1); - - // Now get another criteria - $updateInstance = ObjectFactory::createObjectByConfiguredName('update_criteria_class'); - - // And add our both entries - $updateInstance->addCriteria($fieldName, $fieldValue); - - // Add the search criteria for searching for the right entry - $updateInstance->setSearchInstance($searchInstance); - - // Remember the update in database result - $this->getResultInstance()->add2UpdateQueue($updateInstance); - } -} - -// [EOF] -?>