Fixed wrong recipient address for new e-mail activation mails
authorMarcel Werk <burntime@woltlab.com>
Thu, 21 Jun 2018 17:07:55 +0000 (19:07 +0200)
committerMarcel Werk <burntime@woltlab.com>
Thu, 21 Jun 2018 17:07:55 +0000 (19:07 +0200)
wcfsetup/install/files/lib/form/EmailNewActivationCodeForm.class.php

index 90830fd1816a321d6d2b5aeb6ff5340617c7d5c7..87d7a0ae7cb6b7141d910b5b10a2da8fa6fe4b70 100644 (file)
@@ -2,6 +2,7 @@
 namespace wcf\form;
 use wcf\data\user\User;
 use wcf\data\user\UserAction;
+use wcf\data\user\UserList;
 use wcf\system\email\mime\MimePartFacade;
 use wcf\system\email\mime\RecipientAwareTextMimePart;
 use wcf\system\email\Email;
@@ -67,8 +68,13 @@ class EmailNewActivationCodeForm extends RegisterNewActivationCodeForm {
                ]);
                $this->objectAction->executeAction();
                
-               // reload user object
-               $this->user = new User($this->user->userID);
+               // use user list to allow overriding of the fields without duplicating logic
+               $userList = new UserList();
+               $userList->useQualifiedShorthand = false;
+               $userList->sqlSelects .= ", user_table.*, newEmail AS email";
+               $userList->getConditionBuilder()->add('user_table.userID = ?', [$this->user->userID]);
+               $userList->readObjects();
+               $this->user = $userList->getObjects()[$this->user->userID];
                
                // send activation mail
                $email = new Email();