A lot rewrites and fixes for weak redirect methods
[shipsimu.git] / inc / classes / main / filter / change / class_PasswordChangeFilter.php
index 9c306bf94e3024028a1642f4d161b9b7979deb61..e7b8b50556ee3899294a85808ca6c37839c48ae1 100644 (file)
@@ -4,7 +4,7 @@
  *
  * @author             Roland Haeder <webmaster@ship-simu.org>
  * @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 <http://www.gnu.org/licenses/>.
  */
-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,6 +55,7 @@ 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) {
                // Get both passwords
@@ -91,6 +86,12 @@ class PasswordChangeFilter extends BaseFrameworkSystem implements Filterable {
                        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!