X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=inc%2Fclasses%2Fmain%2Ffilter%2Fchange%2Fclass_PasswordChangeFilter.php;h=e7b8b50556ee3899294a85808ca6c37839c48ae1;hb=df33e264f3246f80756d7e2da55d7f7c40f9088c;hp=353ad72f7c91092a38e130d03659ef6ec1887332;hpb=75552231db513fd6657bdb232c5f3109aaa605d7;p=shipsimu.git diff --git a/inc/classes/main/filter/change/class_PasswordChangeFilter.php b/inc/classes/main/filter/change/class_PasswordChangeFilter.php index 353ad72..e7b8b50 100644 --- a/inc/classes/main/filter/change/class_PasswordChangeFilter.php +++ b/inc/classes/main/filter/change/class_PasswordChangeFilter.php @@ -4,7 +4,7 @@ * * @author Roland Haeder * @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,7 +21,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -class PasswordChangeFilter extends BaseFrameworkSystem implements Filterable { +class PasswordChangeFilter extends BaseFilter implements Filterable { /** * Protected constructor * @@ -30,27 +30,21 @@ class PasswordChangeFilter extends BaseFrameworkSystem implements Filterable { protected function __construct () { // Call parent constructor parent::__construct(__CLASS__); - - // Set part description - $this->setObjectDescription("A filter for password change"); - - // Create unique ID number - $this->generateUniqueId(); - - // Clean up a little - $this->removeNumberFormaters(); - $this->removeSystemArray(); } /** * Creates an instance of this filter class * - * @return $filterInstance An instance of this filter class + * @param $controllerInstance An instance of a controller class + * @return $filterInstance An instance of this filter class */ - public final static function createPasswordChangeFilter () { + public final static function createPasswordChangeFilter (Controller $controllerInstance) { // Get a new instance $filterInstance = new PasswordChangeFilter(); + // Set the controller + $filterInstance->setControllerInstance($controllerInstance); + // Return the instance return $filterInstance; } @@ -61,10 +55,60 @@ class PasswordChangeFilter extends BaseFrameworkSystem implements Filterable { * @param $requestInstance An instance of a class with an Requestable interface * @param $responseInstance An instance of a class with an Responseable interface * @return void + * @todo Finished updating user password hash here. HINT: Use the User class again. */ public function execute (Requestable $requestInstance, Responseable $responseInstance) { - // Implement this! - $this->partialStub("Please implement this method."); + // Get both passwords + $pass1 = $requestInstance->getRequestElement('pass1'); + $pass2 = $requestInstance->getRequestElement('pass2'); + + // Is only first email set? + if ((!empty($pass1)) && (empty($pass2))) { + // Request is invalid! + $requestInstance->requestIsValid(false); + + // Email 2 is empty + $responseInstance->addFatalMessage('pass2_empty'); + + // Stop processing here + return false; + } // END - if + + // Is only second pass set? + if ((empty($pass1)) && (!empty($pass2))) { + // Request is invalid! + $requestInstance->requestIsValid(false); + + // Email 1 is empty + $responseInstance->addFatalMessage('pass1_empty'); + + // Stop processing here + return false; + } // END - if + + // Are password and confirmation empty? + if ((empty($pass1)) && (empty($pass2))) { + // Don't change password here + return true; + } // END - if + + // Do both match? + if ($pass1 != $pass2) { + // Request is invalid! + $requestInstance->requestIsValid(false); + + // Emails are mismatching + $responseInstance->addFatalMessage('pass_mismatch'); + + // Stop processing here + return false; + } // END - if + + // Now, get a user instance for comparison + $userInstance = Registry::getRegistry()->getInstance('user'); + + // Update the "password" field + $this->partialStub("Unfinished part."); } }