+++ /dev/null
-<?php
-/**
- * A special member class for Ship-Simu
- *
- * @author Roland Haeder <webmaster@shipsimu.org>
- * @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 <http://www.gnu.org/licenses/>.
- */
-class ShipSimuBaseUser extends BaseUser implements Registerable, Updateable {
- /**
- * Protected constructor
- *
- * @param $className Name of the class
- * @return void
- */
- protected function __construct ($className) {
- // Call parent constructor
- parent::__construct($className);
- }
-
- /**
- * Initializes the bank instance
- *
- * @return $bankInstance A bank instance wether just created or from registry
- */
- protected function initBankInstance () {
- // Init instance
- $bankInstance = null;
-
- try {
- // Get a money bank instance from registry
- $bankInstance = Registry::getRegistry()->getInstance('money_bank');
- } catch (NullPointerException $e) {
- // Instance not found in registry
- // @TODO We should log this exception later
- }
-
- // Is it there?
- if (is_null($bankInstance)) {
- // Then create a new one
- $bankInstance = ObjectFactory::createObjectByConfiguredName('bank_class', array($this));
-
- // Store it in registry
- Registry::getRegistry()->addInstance('money_bank', $bankInstance);
- } // END - if
-
- // Return the instance
- return $bankInstance;
- }
-
- /**
- * Initializes the government instance
- *
- * @return $governmentInstance A government instance
- */
- protected function initGovernmentInstance () {
- // Init instance
- $governmentInstance = null;
-
- try {
- // First get a government instance from registry
- $governmentInstance = Registry::getRegistry()->getInstance('government');
- } catch (NullPointerException $e) {
- // Instance not found in registry
- // @TODO We should log this exception later
- }
-
- // Is it there?
- if (is_null($governmentInstance)) {
- // Then create a new one
- $governmentInstance = ObjectFactory::createObjectByConfiguredName('government_class', array($this));
-
- // Store it in registry
- Registry::getRegistry()->addInstance('government', $governmentInstance);
- } // END - if
-
- // Return the prepared instance
- return $governmentInstance;
- }
-
- /**
- * Checks wether the user has reached maximum allowed companies to found
- *
- * @return $reached Wether the user has reached maximum allowed companies to found
- */
- public function ifUserCreatedMaximumAllowedCompanies () {
- // Get max allowed companies to found
- $maxFound = $this->getConfigInstance()->getConfigEntry('max_allowed_companies_found');
-
- // Now get a search criteria and set the user's name as criteria
- $searchInstance = ObjectFactory::createObjectByConfiguredName('search_criteria_class');
- $searchInstance->addCriteria(UserDatabaseWrapper::DB_COLUMN_USERNAME, $this->getUserName());
- $searchInstance->setLimit($maxFound);
-
- // Get a company wrapper
- $wrapperInstance = ObjectFactory::createObjectByConfiguredName('company_db_wrapper_class');
-
- // Do the count-select by criteria
- $totalRows = $wrapperInstance->doSelectCountByCriteria($searchInstance);
-
- // Does the user have reached maximum?
- $reached = ($totalRows >= $maxFound);
-
- // Return the result
- return $reached;
- }
-
- /**
- * Checks wether the user has the required amount of points left for the specified action
- *
- * @param $action The action or configuration entry plus prefix the user wants to perform
- * @return $hasRequired Wether the user has the required points
- */
- public function ifUserHasRequiredPoints ($action) {
- // Default is that everyone is poor... ;-)
- $hasRequired = false;
-
- // Init instance
- $pointsInstance = null;
-
- try {
- // Get a points instance from registry
- $pointsInstance = Registry::getRegistry()->getInstance('points');
- } catch (NullPointerException $e) {
- // Instance not found in registry
- // @TODO We should log this exception later
- }
-
- // Is there an instance?
- if (is_null($pointsInstance)) {
- // Then create one
- $pointsInstance = ObjectFactory::createObjectByConfiguredName('user_points_class', array($this));
-
- // And store it in registry
- Registry::getRegistry()->addInstance('points', $pointsInstance);
- } // END - if
-
- // Just forward this request to the user points class
- $hasRequired = $pointsInstance->ifUserHasRequiredPoints($action);
-
- // Return the result
- return $hasRequired;
- }
-
- /**
- * Determines if government can still pay a "virtual training course" in general
- *
- * @return $ifGovHelps Wether if government helps the user with a virtual training course
- */
- public function ifGovernmentPaysTraining () {
- // By default they want to help.
- $ifGovHelps = true;
-
- // Initialize government instance
- $governmentInstance = $this->initGovernmentInstance();
-
- // Then ask the government if they want to pay a "startup help" to the user
- $ifGovHelps = ($governmentInstance->ifGovernmentAlreadyPayedTraining());
-
- // Return result here
- return $ifGovHelps;
- }
-
- /**
- * Determines if government can still pay a "startup help" to the user
- *
- * @return $ifGovHelps Wether if government helps the user with some startup money
- */
- public function ifGovernmentPaysStartupHelp () {
- // By default they want to help.
- $ifGovHelps = true;
-
- // Initialize government instance
- $governmentInstance = $this->initGovernmentInstance();
-
- // Then ask the government if they want to pay a "startup help" to the user
- $ifGovHelps = ($governmentInstance->ifGovernmentPayedMaxmimumStartupHelp());
-
- // Return result here
- return $ifGovHelps;
- }
-
- /**
- * Checks wether the user can take points from the money bank
- *
- * @return $bankLends Wether the money bank is able to lend money
- * @todo Need to implement MoneyBank::ifBankLendsMoreMoney()
- */
- public function ifUserAllowedTakeCreditsFromMoneyBank () {
- // Per default the money bank cannot pay
- $bankLends = false;
-
- // Initialize bank instance
- $bankInstance->initBankInstance();
-
- // Does the money bank lend more money?
- $bankLends = ($bankInstance->ifBankLendsMoreMoney());
-
- // Return result
- return $bankLends;
- }
-
- /**
- * Checks wether the user has maximum credits with the money bank. This
- * should be done seperately from checking if the user is allowed to take
- * credits from the bank.
- *
- * @return $hasMaxCredits Wether the user has maximum credits with the bank
- * @todo Need to check the bank if they can lend more money
- */
- public function ifUserHasMaximumCreditsWithMoneyBank () {
- // For default he can still get money
- $hasMaxCredits = false;
-
- // Initialize the bank instance
- $bankInstance = $this->initBankInstance();
-
- // Now check if the user has maximum credits
- $hasMaxCredits = ($bankInstance->ifUserHasMaxCredits());
-
- // Return the result
- return $hasMaxCredits;
- }
-
- /**
- * Checks wether the money bank has opened
- *
- * @return $hasOpened Wether the money bank has opened
- */
- public function ifMoneyBankHasOpened () {
- // Default is not opened
- $hasOpened = false;
-
- // Initialize the bank instance
- $bankInstance = $this->initBankInstance();
-
- // Has this bank opened?
- $hasOpened = ($bankInstance->ifMoneyBankHasOpened());
-
- // Return result
- return $hasOpened;
- }
-}
-
-// [EOF]
-?>