]> git.agnieray.net Git - galette.git/commitdiff
Keep values changed when an error occurs; closes #1542
authorJohan Cwiklinski <johan@x-tnd.be>
Fri, 16 Apr 2021 09:45:38 +0000 (11:45 +0200)
committerJohan Cwiklinski <johan@x-tnd.be>
Fri, 16 Apr 2021 11:51:46 +0000 (13:51 +0200)
galette/lib/Galette/Controllers/Crud/MembersController.php

index 7b6ec402d9c2468a19b333b3b08659f5a29a9efe..cc34ff7bb6028ae9cd4a4062ba93a7e498c3fa83 100644 (file)
@@ -7,7 +7,7 @@
  *
  * PHP version 5
  *
- * Copyright © 2019-2020 The Galette Team
+ * Copyright © 2019-2021 The Galette Team
  *
  * This file is part of Galette (http://galette.tuxfamily.org).
  *
@@ -28,7 +28,7 @@
  * @package   Galette
  *
  * @author    Johan Cwiklinski <johan@x-tnd.be>
- * @copyright 2019-2020 The Galette Team
+ * @copyright 2019-2021 The Galette Team
  * @license   http://www.gnu.org/licenses/gpl-3.0.html GPL License 3.0 or (at your option) any later version
  * @link      http://galette.tuxfamily.org
  * @since     Available since 0.9.4dev - 2019-12-02
@@ -1087,16 +1087,17 @@ class MembersController extends CrudController
             'dynamics'  => true
         );
 
+        //instanciate member object
+        $member = new Adherent($this->zdb, $id, $deps);
+
         if ($this->session->member !== null) {
+            //retrieve from session, in add or edit
             $member = $this->session->member;
             $this->session->member = null;
-        } else {
-            $member = new Adherent($this->zdb, $id, $deps);
-        }
-
-        if ($id !== null) {
+        } elseif ($id !== null) {
+            //load requested member
             $member->load($id);
-            if (!$member->canEdit($this->login)) {
+            if (!$member->canEdit($this->login) || $member->id != $id) {
                 $this->flash->addMessage(
                     'error_detected',
                     _T("You do not have permission for requested URL.")
@@ -1109,10 +1110,6 @@ class MembersController extends CrudController
                         $this->router->pathFor('me')
                     );
             }
-        } else {
-            if ($member->id != $id) {
-                $member->load($this->login->id);
-            }
         }
 
         // flagging required fields