Skip to content

Commit 3d161b9

Browse files
author
Stanislav Idolov
authored
ENGCOM-2007: [Backport] Fix issue #14895 - Change Password warning message appear two times #15774
2 parents 75489a1 + d484a7a commit 3d161b9

File tree

3 files changed

+13
-4
lines changed

3 files changed

+13
-4
lines changed

app/code/Magento/User/Model/User.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,8 @@ class User extends AbstractModel implements StorageInterface, UserInterface
4747
/** @deprecated */
4848
const XML_PATH_RESET_PASSWORD_TEMPLATE = 'admin/emails/reset_password_template';
4949

50+
const MESSAGE_ID_PASSWORD_EXPIRED = 'magento_user_password_expired';
51+
5052
/**
5153
* Model event prefix
5254
*

app/code/Magento/User/Observer/Backend/AuthObserver.php

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ public function execute(EventObserver $observer)
149149
/**
150150
* Update locking information for the user
151151
*
152-
* @param \Magento\User\Model\User $user
152+
* @param User $user
153153
* @return void
154154
*/
155155
private function _updateLockingInformation($user)
@@ -195,10 +195,16 @@ private function _checkExpiredPassword($latestPassword)
195195
$myAccountUrl = $this->url->getUrl('adminhtml/system_account/');
196196
$message = __('It\'s time to <a href="%1">change your password</a>.', $myAccountUrl);
197197
}
198+
199+
$messages = $this->messageManager->getMessages();
200+
201+
// Remove existing messages with same ID to avoid duplication
202+
$messages->deleteMessageByIdentifier(User::MESSAGE_ID_PASSWORD_EXPIRED);
203+
198204
$this->messageManager->addNoticeMessage($message);
199-
$message = $this->messageManager->getMessages()->getLastAddedMessage();
205+
$message = $messages->getLastAddedMessage();
200206
if ($message) {
201-
$message->setIdentifier('magento_user_password_expired')->setIsSticky(true);
207+
$message->setIdentifier(User::MESSAGE_ID_PASSWORD_EXPIRED)->setIsSticky(true);
202208
$this->authSession->setPciAdminUserIsPasswordExpired(true);
203209
}
204210
}

app/code/Magento/User/Observer/Backend/TrackAdminNewPasswordObserver.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88

99
use Magento\Framework\Event\Observer as EventObserver;
1010
use Magento\Framework\Event\ObserverInterface;
11+
use Magento\User\Model\User;
1112

1213
/**
1314
* User backend observer model for passwords
@@ -74,7 +75,7 @@ public function execute(EventObserver $observer)
7475
$passwordHash = $user->getPassword();
7576
if ($passwordHash && !$user->getForceNewPassword()) {
7677
$this->userResource->trackPassword($user, $passwordHash);
77-
$this->messageManager->getMessages()->deleteMessageByIdentifier('magento_user_password_expired');
78+
$this->messageManager->getMessages()->deleteMessageByIdentifier(User::MESSAGE_ID_PASSWORD_EXPIRED);
7879
$this->authSession->unsPciAdminUserIsPasswordExpired();
7980
}
8081
}

0 commit comments

Comments
 (0)