/**
* A general user class
*
- * @author Roland Haeder <webmaster@ship-simu.org>
+ * @author Roland Haeder <webmaster@shipsimu.org>
* @version 0.0.0
- * @copyright Copyright (c) 2007, 2008 Roland Haeder, this is free software
+ * @copyright Copyright (c) 2007, 2008 Roland Haeder, 2009 - 2015 Core Developer Team
* @license GNU GPL 3.0 or any newer version
- * @link http://www.ship-simu.org
+ * @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
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-class BaseUser extends BaseFrameworkSystem {
+class BaseUser extends BaseFrameworkSystem implements Updateable {
// Exception constances
const EXCEPTION_USERNAME_NOT_FOUND = 0x150;
const EXCEPTION_USER_EMAIL_NOT_FOUND = 0x151;
/**
* Username of current user
*/
- private $userName = "";
+ private $userName = '';
/**
* User id of current user
/**
* Email of current user
*/
- private $email = "";
+ private $email = '';
/**
* Protected constructor
protected function __construct ($className) {
// Call parent constructor
parent::__construct($className);
-
- // Clean up a little
- $this->removeNumberFormaters();
- $this->removeSystemArray();
}
/**
}
/**
- * Determines wether the username exists or not
+ * Determines whether the username exists or not
*
- * @return $exists Wether the username exists
+ * @return $exists Whether the username exists
*/
public function ifUsernameExists () {
// By default the username does not exist
- $exists = false;
+ $exists = FALSE;
// Is a previous result there?
if (is_null($this->getResultInstance())) {
// Search for it
if ($this->getResultInstance()->next()) {
// Entry found
- $exists = true;
+ $exists = TRUE;
} // END - if
// Return the status
}
/**
- * Determines wether the email exists or not
+ * Determines whether the email exists or not
*
- * @return $exists Wether the email exists
+ * @return $exists Whether the email exists
*/
public function ifEmailAddressExists () {
// By default the email does not exist
- $exists = false;
+ $exists = FALSE;
// Is a previous result there?
if (is_null($this->getResultInstance())) {
// Search for it
if ($this->getResultInstance()->next()) {
// Entry found
- $exists = true;
+ $exists = TRUE;
// Is the username set?
- if ($this->getUserName() == "") {
+ if ($this->getUserName() == '') {
// Get current entry
$currEntry = $this->getResultInstance()->current();
* database.
*
* @param $requestInstance A requestable class instance
- * @return $matches Wether the supplied password hash matches
+ * @return $matches Whether the supplied password hash matches
*/
public function ifPasswordHashMatches (Requestable $requestInstance) {
// By default nothing matches... ;)
- $matches = false;
+ $matches = FALSE;
// Is a previous result there?
if (is_null($this->getResultInstance())) {
$this->setResultInstance($resultInstance);
} // END - if
- // Rewind it
+ // Rewind it and advance to first entry
$this->getResultInstance()->rewind();
+ // This call set the result instance to a clean state
+ $this->getResultInstance()->next();
+
// Search for it
if ($this->getResultInstance()->find('pass_hash')) {
// So does the hashes match?
- //* DEBUG: */ echo $requestInstance->getRequestElement('pass_hash')."/".$entry['pass_hash'];
+ //* DEBUG: */ echo $requestInstance->getRequestElement('pass_hash') . '<br />' . $this->getResultInstance()->getFoundValue() . '<br />';
$matches = ($requestInstance->getRequestElement('pass_hash') === $this->getResultInstance()->getFoundValue());
} // END - if
*/
public final function getPasswordHash () {
// Default is missing password hash
- $passHash = null;
+ $passHash = NULL;
// Get a database entry
$entry = $this->getDatabaseEntry();
* @param $fieldName Field to update
* @param $fieldValue New value to store
* @return void
- * @throws DatabaseUpdateSupportException If this class does not support database updates
+ * @todo Try to make this method more generic so we can move it in BaseFrameworkSystem
*/
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');
// Now get another criteria
$updateInstance = ObjectFactory::createObjectByConfiguredName('update_criteria_class');
- // And add our both entries
+ // Add criteria entry which we shall update
$updateInstance->addCriteria($fieldName, $fieldValue);
// Add the search criteria for searching for the right entry
$updateInstance->setSearchInstance($searchInstance);
+ // Set wrapper class name
+ $updateInstance->setWrapperConfigEntry('user_db_wrapper_class');
+
// Remember the update in database result
$this->getResultInstance()->add2UpdateQueue($updateInstance);
}