Skip to content

Commit ae5cda8

Browse files
ENGCOM-1416: Fix issue #14895 - Change Password warning message appear two times #14897
2 parents afb6bc2 + 614017a commit ae5cda8

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
@@ -48,6 +48,8 @@ class User extends AbstractModel implements StorageInterface, UserInterface
4848
/** @deprecated */
4949
const XML_PATH_RESET_PASSWORD_TEMPLATE = 'admin/emails/reset_password_template';
5050

51+
const MESSAGE_ID_PASSWORD_EXPIRED = 'magento_user_password_expired';
52+
5153
/**
5254
* Model event prefix
5355
*

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

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,7 @@ public function execute(EventObserver $observer)
152152
/**
153153
* Update locking information for the user
154154
*
155-
* @param \Magento\User\Model\User $user
155+
* @param User $user
156156
* @return void
157157
*/
158158
private function _updateLockingInformation($user)
@@ -198,10 +198,16 @@ private function _checkExpiredPassword($latestPassword)
198198
$myAccountUrl = $this->url->getUrl('adminhtml/system_account/');
199199
$message = __('It\'s time to <a href="%1">change your password</a>.', $myAccountUrl);
200200
}
201+
202+
$messages = $this->messageManager->getMessages();
203+
204+
// Remove existing messages with same ID to avoid duplication
205+
$messages->deleteMessageByIdentifier(User::MESSAGE_ID_PASSWORD_EXPIRED);
206+
201207
$this->messageManager->addNoticeMessage($message);
202-
$message = $this->messageManager->getMessages()->getLastAddedMessage();
208+
$message = $messages->getLastAddedMessage();
203209
if ($message) {
204-
$message->setIdentifier('magento_user_password_expired')->setIsSticky(true);
210+
$message->setIdentifier(User::MESSAGE_ID_PASSWORD_EXPIRED)->setIsSticky(true);
205211
$this->authSession->setPciAdminUserIsPasswordExpired(true);
206212
}
207213
}

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)