Skip to content

Commit 3c5a58f

Browse files
authored
Merge pull request #449 from magento-performance/CABPI-388
CABPI-388: Approve/Update UI for reAuth functionality
2 parents df4c757 + fd258b6 commit 3c5a58f

File tree

9 files changed

+80
-53
lines changed

9 files changed

+80
-53
lines changed

app/code/Magento/AdminAdobeIms/Controller/Adminhtml/OAuth/ImsReauthCallback.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,9 @@ public function execute(): ResultInterface
123123
if (empty($profile['email'])) {
124124
throw new AuthenticationException(__('An authentication error occurred. Verify and try again.'));
125125
}
126-
$this->adminOrganizationService->checkOrganizationAllocation($profile);
126+
127+
$accessToken = $tokenResponse->getAccessToken();
128+
$this->adminOrganizationService->checkOrganizationAllocation($accessToken);
127129
$this->adminReauthProcessService->execute($tokenResponse);
128130

129131
$response = sprintf(

app/code/Magento/AdminAdobeIms/Plugin/AdobeImsReauth/AddAdobeImsReAuthButton.php

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ class AddAdobeImsReAuthButton
2020
*/
2121
public function addAdobeImsReAuthButton(AbstractElement $fieldset): void
2222
{
23+
$fieldset->setLegend(__('Identity Verification'));
24+
2325
$fieldset->addField(
2426
'ims_verification',
2527
'button',
@@ -30,7 +32,8 @@ public function addAdobeImsReAuthButton(AbstractElement $fieldset): void
3032
'class' => 'ims_verification',
3133
'title' => __('Verify Identity with Adobe IMS'),
3234
'required' => true,
33-
'value' => __('Sign In with Adobe IMS'),
35+
'value' => __('Confirm Identity'),
36+
'note' => __('To apply changes you need to verify your Adobe identity.'),
3437
]
3538
);
3639

@@ -39,10 +42,10 @@ public function addAdobeImsReAuthButton(AbstractElement $fieldset): void
3942
'hidden',
4043
[
4144
'name' => 'ims_verified',
42-
'label' => __('Verify Identity with Adobe IMS'),
45+
'label' => __('Identity Verified with Adobe IMS'),
4346
'id' => 'ims_verified',
4447
'class' => 'ims_verified',
45-
'title' => __('Verify Identity with Adobe IMS'),
48+
'title' => __('Identity Verified with Adobe IMS'),
4649
'required' => true,
4750
]
4851
);

app/code/Magento/AdminAdobeIms/Plugin/Block/Adminhtml/SignInPlugin.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ private function getUserData(): array
155155

156156
return [
157157
'isAuthorized' => true,
158-
'name' => $user->getFirstName() . ' ' . $user->getLastName(),
158+
'name' => $user->getName(),
159159
'email' => $user->getEmail(),
160160
'image' => ''
161161
];

app/code/Magento/AdminAdobeIms/Plugin/Block/Adminhtml/System/Account/Edit/AddReAuthVerification.php

Lines changed: 20 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@
88

99
namespace Magento\AdminAdobeIms\Plugin\Block\Adminhtml\System\Account\Edit;
1010

11-
use Closure;
1211
use Magento\AdminAdobeIms\Plugin\AdobeImsReauth\AddAdobeImsReAuthButton;
12+
use Magento\AdminAdobeIms\Service\ImsConfig;
1313
use Magento\Backend\Block\System\Account\Edit\Form;
1414

1515
class AddReAuthVerification
@@ -19,33 +19,40 @@ class AddReAuthVerification
1919
*/
2020
private AddAdobeImsReAuthButton $adobeImsReAuthButton;
2121

22+
/**
23+
* @var ImsConfig
24+
*/
25+
private ImsConfig $adminAdobeImsConfig;
26+
2227
/**
2328
* @param AddAdobeImsReAuthButton $adobeImsReAuthButton
29+
* @param ImsConfig $adminAdobeImsConfig
2430
*/
2531
public function __construct(
26-
AddAdobeImsReAuthButton $adobeImsReAuthButton
32+
AddAdobeImsReAuthButton $adobeImsReAuthButton,
33+
ImsConfig $adminAdobeImsConfig
2734
) {
2835
$this->adobeImsReAuthButton = $adobeImsReAuthButton;
36+
$this->adminAdobeImsConfig = $adminAdobeImsConfig;
2937
}
3038

3139
/**
3240
* Add adobeIms reAuth button to account edit form
3341
*
3442
* @param Form $subject
35-
* @param Closure $proceed
36-
* @return mixed
43+
* @return void
3744
*/
38-
public function aroundGetFormHtml(Form $subject, Closure $proceed)
45+
public function beforeGetFormHtml(Form $subject): void
3946
{
40-
$form = $subject->getForm();
41-
if (is_object($form)) {
42-
$verificationFieldset = $form->getElement('current_user_verification_fieldset');
43-
if ($verificationFieldset !== null) {
44-
$this->adobeImsReAuthButton->addAdobeImsReAuthButton($verificationFieldset);
45-
$subject->setForm($form);
47+
if ($this->adminAdobeImsConfig->enabled()) {
48+
$form = $subject->getForm();
49+
if (is_object($form)) {
50+
$verificationFieldset = $form->getElement('current_user_verification_fieldset');
51+
if ($verificationFieldset !== null) {
52+
$this->adobeImsReAuthButton->addAdobeImsReAuthButton($verificationFieldset);
53+
$subject->setForm($form);
54+
}
4655
}
4756
}
48-
49-
return $proceed();
5057
}
5158
}

app/code/Magento/AdminAdobeIms/Plugin/Block/Adminhtml/User/Edit/Tab/AddReAuthVerification.php

Lines changed: 20 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@
88

99
namespace Magento\AdminAdobeIms\Plugin\Block\Adminhtml\User\Edit\Tab;
1010

11-
use Closure;
1211
use Magento\AdminAdobeIms\Plugin\AdobeImsReauth\AddAdobeImsReAuthButton;
12+
use Magento\AdminAdobeIms\Service\ImsConfig;
1313
use Magento\User\Block\User\Edit\Tab\Main;
1414

1515
class AddReAuthVerification
@@ -19,33 +19,40 @@ class AddReAuthVerification
1919
*/
2020
private AddAdobeImsReAuthButton $adobeImsReAuthButton;
2121

22+
/**
23+
* @var ImsConfig
24+
*/
25+
private ImsConfig $adminAdobeImsConfig;
26+
2227
/**
2328
* @param AddAdobeImsReAuthButton $adobeImsReAuthButton
29+
* @param ImsConfig $adminAdobeImsConfig
2430
*/
2531
public function __construct(
26-
AddAdobeImsReAuthButton $adobeImsReAuthButton
32+
AddAdobeImsReAuthButton $adobeImsReAuthButton,
33+
ImsConfig $adminAdobeImsConfig
2734
) {
2835
$this->adobeImsReAuthButton = $adobeImsReAuthButton;
36+
$this->adminAdobeImsConfig = $adminAdobeImsConfig;
2937
}
3038

3139
/**
3240
* Add adobeIms reAuth button to user edit and create form
3341
*
3442
* @param Main $subject
35-
* @param Closure $proceed
36-
* @return mixed
43+
* @return void
3744
*/
38-
public function aroundGetFormHtml(Main $subject, Closure $proceed)
45+
public function beforeGetFormHtml(Main $subject): void
3946
{
40-
$form = $subject->getForm();
41-
if (is_object($form)) {
42-
$verificationFieldset = $form->getElement('current_user_verification_fieldset');
43-
if ($verificationFieldset !== null) {
44-
$this->adobeImsReAuthButton->addAdobeImsReAuthButton($verificationFieldset);
45-
$subject->setForm($form);
47+
if ($this->adminAdobeImsConfig->enabled()) {
48+
$form = $subject->getForm();
49+
if (is_object($form)) {
50+
$verificationFieldset = $form->getElement('current_user_verification_fieldset');
51+
if ($verificationFieldset !== null) {
52+
$this->adobeImsReAuthButton->addAdobeImsReAuthButton($verificationFieldset);
53+
$subject->setForm($form);
54+
}
4655
}
4756
}
48-
49-
return $proceed();
5057
}
5158
}

app/code/Magento/AdminAdobeIms/Plugin/Block/Adminhtml/User/Role/Tab/AddReAuthVerification.php

Lines changed: 20 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@
88

99
namespace Magento\AdminAdobeIms\Plugin\Block\Adminhtml\User\Role\Tab;
1010

11-
use Closure;
1211
use Magento\AdminAdobeIms\Plugin\AdobeImsReauth\AddAdobeImsReAuthButton;
12+
use Magento\AdminAdobeIms\Service\ImsConfig;
1313
use Magento\User\Block\Role\Tab\Info;
1414

1515
class AddReAuthVerification
@@ -19,33 +19,40 @@ class AddReAuthVerification
1919
*/
2020
private AddAdobeImsReAuthButton $adobeImsReAuthButton;
2121

22+
/**
23+
* @var ImsConfig
24+
*/
25+
private ImsConfig $adminAdobeImsConfig;
26+
2227
/**
2328
* @param AddAdobeImsReAuthButton $adobeImsReAuthButton
29+
* @param ImsConfig $adminAdobeImsConfig
2430
*/
2531
public function __construct(
26-
AddAdobeImsReAuthButton $adobeImsReAuthButton
32+
AddAdobeImsReAuthButton $adobeImsReAuthButton,
33+
ImsConfig $adminAdobeImsConfig
2734
) {
2835
$this->adobeImsReAuthButton = $adobeImsReAuthButton;
36+
$this->adminAdobeImsConfig = $adminAdobeImsConfig;
2937
}
3038

3139
/**
3240
* Add adobeIms reAuth button to role edit and create form
3341
*
3442
* @param Info $subject
35-
* @param Closure $proceed
36-
* @return mixed
43+
* @return void
3744
*/
38-
public function aroundGetFormHtml(Info $subject, Closure $proceed)
45+
public function beforeGetFormHtml(Info $subject): void
3946
{
40-
$form = $subject->getForm();
41-
if (is_object($form)) {
42-
$verificationFieldset = $form->getElement('current_user_verification_fieldset');
43-
if ($verificationFieldset !== null) {
44-
$this->adobeImsReAuthButton->addAdobeImsReAuthButton($verificationFieldset);
45-
$subject->setForm($form);
47+
if ($this->adminAdobeImsConfig->enabled()) {
48+
$form = $subject->getForm();
49+
if (is_object($form)) {
50+
$verificationFieldset = $form->getElement('current_user_verification_fieldset');
51+
if ($verificationFieldset !== null) {
52+
$this->adobeImsReAuthButton->addAdobeImsReAuthButton($verificationFieldset);
53+
$subject->setForm($form);
54+
}
4655
}
4756
}
48-
49-
return $proceed();
5057
}
5158
}

app/code/Magento/AdminAdobeIms/Plugin/ReplaceVerifyIdentityWithImsPlugin.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,10 @@ public function aroundVerifyIdentity(User $subject, callable $proceed, string $p
6767
}
6868

6969
$valid = $this->verifyImsToken();
70+
71+
$session = $this->auth->getAuthStorage();
72+
$session->setAdobeReAuthToken(null);
73+
7074
if ($valid) {
7175
return true;
7276
}

app/code/Magento/AdminAdobeIms/Test/Unit/Plugin/Block/Adminhtml/SignInPluginTest.php

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -106,8 +106,7 @@ public function testAroundGetComponentJsonConfig(
106106

107107
$userProfile = $this->createMock(User::class);
108108
if ($isAuthorized) {
109-
$userProfile->method('getFirstName')->willReturn($userData['firstname']);
110-
$userProfile->method('getLastName')->willReturn($userData['lastname']);
109+
$userProfile->method('getName')->willReturn($userData['name']);
111110
$userProfile->method('getEmail')->willReturn($userData['email']);
112111
}
113112

@@ -170,8 +169,7 @@ public function userDataProvider(): array
170169
'Existing authorized user' => [
171170
[
172171
'isAuthorized' => true,
173-
'firstname' => 'John',
174-
'lastname' => 'Doe',
172+
'name' => 'John Doe',
175173
'email' => 'john@email.com',
176174
],
177175
[],
@@ -186,7 +184,7 @@ public function userDataProvider(): array
186184
'Existing non-authorized user' => [
187185
[
188186
'isAuthorized' => false,
189-
'name' => 'John',
187+
'name' => 'John Doe',
190188
'email' => 'john@email.com',
191189
'image' => 'image.png'
192190
],

app/code/Magento/AdminAdobeIms/Test/Unit/Plugin/ReplaceVerifyIdentityWithImsPluginTest.php

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,7 @@ protected function setUp(): void
5555
$objectManagerHelper = new ObjectManagerHelper($this);
5656

5757
$this->storageMock = $this->getMockBuilder(StorageInterface::class)
58-
->setMethods(['getAdobeAccessToken'])
59-
->setMethods(['getAdobeReAuthToken'])
58+
->setMethods(['getAdobeAccessToken', 'getAdobeReAuthToken', 'setAdobeReAuthToken'])
6059
->getMockForAbstractClass();
6160

6261
$this->authMock = $this->getMockBuilder(Auth::class)
@@ -129,7 +128,7 @@ public function testAroundVerifyIdentityVerifiesAccessTokenWhenModuleIsEnabled()
129128
->method('getAdobeReAuthToken')
130129
->willReturn('reAuthToken');
131130

132-
$this->authMock->expects($this->once())
131+
$this->authMock->expects($this->atLeastOnce())
133132
->method('getAuthStorage')
134133
->willReturn($this->storageMock);
135134

@@ -174,7 +173,7 @@ public function testAroundVerifyIdentityThrowsExceptionOnInvalidToken(): void
174173
->method('getAdobeReAuthToken')
175174
->willReturn('invalidToken');
176175

177-
$this->authMock->expects($this->once())
176+
$this->authMock->expects($this->atLeastOnce())
178177
->method('getAuthStorage')
179178
->willReturn($this->storageMock);
180179

0 commit comments

Comments
 (0)