Skip to content

Commit 1b1c12e

Browse files
committed
fix dates in MFTF test; update admin user form plugin to set the user expiration value (#22833)
1 parent 20f2f0e commit 1b1c12e

File tree

9 files changed

+54
-237
lines changed

9 files changed

+54
-237
lines changed

app/code/Magento/Security/Model/Plugin/AdminUserForm.php

Lines changed: 36 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77

88
namespace Magento\Security\Model\Plugin;
99

10+
use Magento\Security\Model\UserExpiration;
11+
1012
/**
1113
* Add the `expires_at` form field to the User main form.
1214
*
@@ -20,14 +22,31 @@ class AdminUserForm
2022
*/
2123
private $localeDate;
2224

25+
/**
26+
* @var \Magento\Security\Model\ResourceModel\UserExpiration
27+
*/
28+
private $userExpirationResource;
29+
30+
/**
31+
* @var UserExpirationFactory
32+
*/
33+
private $userExpirationFactory;
34+
2335
/**
2436
* UserForm constructor.
2537
*
2638
* @param \Magento\Framework\Stdlib\DateTime\TimezoneInterface $localeDate
39+
* @param UserExpiration $userExpiration
40+
* @param \Magento\Security\Model\ResourceModel\UserExpiration $userExpirationResource
2741
*/
28-
public function __construct(\Magento\Framework\Stdlib\DateTime\TimezoneInterface $localeDate)
29-
{
42+
public function __construct(
43+
\Magento\Framework\Stdlib\DateTime\TimezoneInterface $localeDate,
44+
\Magento\Security\Model\UserExpirationFactory $userExpirationFactory,
45+
\Magento\Security\Model\ResourceModel\UserExpiration $userExpirationResource
46+
) {
3047
$this->localeDate = $localeDate;
48+
$this->userExpirationResource = $userExpirationResource;
49+
$this->userExpirationFactory = $userExpirationFactory;
3150
}
3251

3352
/**
@@ -51,6 +70,12 @@ public function aroundGetFormHtml(
5170
\IntlDateFormatter::MEDIUM
5271
);
5372
$fieldset = $form->getElement('base_fieldset');
73+
$userIdField = $fieldset->getElements()->searchById('user_id');
74+
$userExpirationValue = null;
75+
if ($userIdField) {
76+
$userId = $userIdField->getValue();
77+
$userExpirationValue = $this->loadUserExpirationByUserId($userId);
78+
}
5479
$fieldset->addField(
5580
'expires_at',
5681
'date',
@@ -61,6 +86,7 @@ public function aroundGetFormHtml(
6186
'date_format' => $dateFormat,
6287
'time_format' => $timeFormat,
6388
'class' => 'validate-date',
89+
'value' => $userExpirationValue,
6490
]
6591
);
6692

@@ -69,4 +95,12 @@ public function aroundGetFormHtml(
6995

7096
return $proceed();
7197
}
98+
99+
private function loadUserExpirationByUserId($userId)
100+
{
101+
/** @var \Magento\Security\Model\UserExpiration $userExpiration */
102+
$userExpiration = $this->userExpirationFactory->create();
103+
$this->userExpirationResource->load($userExpiration, $userId);
104+
return $userExpiration->getExpiresAt();
105+
}
72106
}

app/code/Magento/Security/Observer/AfterAdminUserLoad.php

Lines changed: 0 additions & 62 deletions
This file was deleted.

app/code/Magento/Security/Test/Mftf/Test/AdminCreateNewUserWithInvalidExpirationTest.xml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
<testCaseId value="" />
1717
<severity value="CRITICAL"/>
1818
<group value="security"/>
19+
<group value="debug"/>
1920
</annotations>
2021

2122
<before>
@@ -26,7 +27,7 @@
2627
</after>
2728

2829
<actionGroup ref="AdminOpenNewUserPageActionGroup" stepKey="openNewUserPage" />
29-
<generateDate date="-5 day" format="M d, Y h:i:s" stepKey="expiresDateTime"/>
30+
<generateDate date="-5 day" format="M d, Y g:i:s A" stepKey="expiresDateTime"/>
3031
<actionGroup ref="AdminFillInUserWithExpirationActionGroup" stepKey="fillInNewUserWithValidExpiration">
3132
<argument name="expires_at" value="{$expiresDateTime}"/>
3233
</actionGroup>

app/code/Magento/Security/Test/Mftf/Test/AdminCreateNewUserWithValidExpirationTest.xml

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
<testCaseId value="" />
1717
<severity value="CRITICAL"/>
1818
<group value="security"/>
19+
<group value="debug"/>
1920
</annotations>
2021
<before>
2122
<actionGroup ref="LoginAsAdmin" stepKey="loginAsAdmin"/>
@@ -25,10 +26,21 @@
2526
</after>
2627

2728
<actionGroup ref="AdminOpenNewUserPageActionGroup" stepKey="openNewUserPage" />
28-
<generateDate date="+5 day" format="M d, Y h:i:s" stepKey="expiresDateTime"/>
29+
<generateDate date="+5 day" format="M d, Y g:i:s A" stepKey="expiresDateTime"/>
2930
<actionGroup ref="AdminFillInUserWithExpirationActionGroup" stepKey="fillInNewUserWithValidExpiration">
3031
<argument name="expires_at" value="{$expiresDateTime}"/>
3132
</actionGroup>
3233
<actionGroup ref="AdminSaveUserSuccessActionGroup" stepKey="saveNewUserWithValidExpirationSuccess" />
34+
35+
<actionGroup ref="AdminOpenUserEditPageActionGroup" stepKey="openUserEditPage">
36+
<argument name="user" value="NewAdminUser"/>
37+
</actionGroup>
38+
39+
<seeInField userInput="{$expiresDateTime}" selector="input#user_expires_at" stepKey="verifyUserExpirationInField"/>
40+
41+
<actionGroup ref="AdminDeleteCustomUserActionGroup" stepKey="deleteUser">
42+
<argument name="user" value="NewAdminUser"/>
43+
</actionGroup>
44+
<!-- TODO: delete created user -->
3345
</test>
3446
</tests>

app/code/Magento/Security/Test/Mftf/Test/AdminLoginAdminUserWithInvalidExpiration.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
</before>
2626

2727
<actionGroup ref="AdminOpenNewUserPageActionGroup" stepKey="openNewUserPage" />
28-
<generateDate date="+2 minute" format="M d, Y h:i A" stepKey="expiresDateTime"/>
28+
<generateDate date="+2 minute" format="M d, Y g:i:s A" stepKey="expiresDateTime"/>
2929
<actionGroup ref="AdminFillInUserWithExpirationActionGroup" stepKey="fillInNewUserWithValidExpiration">
3030
<argument name="expires_at" value="{$expiresDateTime}"/>
3131
</actionGroup>

app/code/Magento/Security/Test/Mftf/Test/AdminLoginAdminUserWithValidExpiration.xml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
<testCaseId value=""/>
1919
<severity value="CRITICAL"/>
2020
<group value="security"/>
21+
<group value="debug"/>
2122
</annotations>
2223

2324
<before>
@@ -28,7 +29,7 @@
2829
</after>
2930

3031
<actionGroup ref="AdminOpenNewUserPageActionGroup" stepKey="openNewUserPage" />
31-
<generateDate date="+5 day" format="M d, Y h:i:s" stepKey="expiresDateTime"/>
32+
<generateDate date="+5 day" format="M d, Y g:i:s A" stepKey="expiresDateTime"/>
3233
<actionGroup ref="AdminFillInUserWithExpirationActionGroup" stepKey="fillInNewUserWithValidExpiration">
3334
<argument name="expires_at" value="{$expiresDateTime}"/>
3435
</actionGroup>

app/code/Magento/Security/Test/Unit/Observer/AfterAdminUserLoadTest.php

Lines changed: 0 additions & 120 deletions
This file was deleted.

app/code/Magento/Security/etc/events.xml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,6 @@
1010
<event name="admin_user_save_after">
1111
<observer name="add_user_expiration" instance="Magento\Security\Observer\AfterAdminUserSave"/>
1212
</event>
13-
<event name="admin_user_load_after">
14-
<observer name="add_user_expiration" instance="Magento\Security\Observer\AfterAdminUserLoad"/>
15-
</event>
1613
<event name="admin_user_authenticate_before">
1714
<observer name="check_user_expiration" instance="Magento\Security\Observer\AdminUserAuthenticateBefore"/>
1815
</event>

dev/tests/integration/testsuite/Magento/Security/Observer/AfterAdminUserLoadTest.php

Lines changed: 0 additions & 46 deletions
This file was deleted.

0 commit comments

Comments
 (0)