Skip to content

Commit 9fc4d84

Browse files
ENGCOM-6433: Resolve Admin panel is not accessible after limited permissions set to at least one admin account issue25881 #25909
2 parents 9705ecf + 0728d91 commit 9fc4d84

File tree

7 files changed

+140
-2
lines changed

7 files changed

+140
-2
lines changed
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
<?php
2+
/**
3+
*
4+
* Copyright © Magento, Inc. All rights reserved.
5+
* See COPYING.txt for license details.
6+
*/
7+
namespace Magento\Backend\Controller\Adminhtml\Denied;
8+
9+
use Magento\Backend\Controller\Adminhtml\Denied;
10+
use Magento\Framework\App\Action\HttpGetActionInterface as HttpGet;
11+
use Magento\Framework\App\Action\HttpPostActionInterface as HttpPost;
12+
13+
/**
14+
* Denied Action
15+
*/
16+
class Index extends Denied implements HttpGet, HttpPost
17+
{
18+
/**
19+
* Check if user has permissions to access this controller
20+
*
21+
* @return bool
22+
*/
23+
protected function _isAllowed()
24+
{
25+
return true;
26+
}
27+
}

app/code/Magento/Backend/Model/Url.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -349,7 +349,7 @@ public function findFirstAvailableMenu()
349349
if ($user) {
350350
$user->setHasAvailableResources(false);
351351
}
352-
$action = '*/*/denied';
352+
$action = '*/denied';
353353
}
354354
return $action;
355355
}
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!--
3+
/**
4+
* Copyright © Magento, Inc. All rights reserved.
5+
* See COPYING.txt for license details.
6+
*/
7+
-->
8+
9+
<tests xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
10+
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/testSchema.xsd">
11+
<test name="AdminLoginWithRestrictPermissionTest">
12+
<annotations>
13+
<features value="Backend"/>
14+
<title value="Login with restrict role."/>
15+
<stories value="Login on the Admin Login page" />
16+
<testCaseId value="MC-29321" />
17+
<severity value="MAJOR" />
18+
<description value="Check login with restrict role."/>
19+
<group value="login"/>
20+
</annotations>
21+
22+
<before>
23+
<actionGroup ref="LoginAsAdmin" stepKey="logIn"/>
24+
<!--Create user role-->
25+
<actionGroup ref="AdminFillUserRoleRequiredDataActionGroup" stepKey="fillUserRoleRequiredData">
26+
<argument name="User" value="adminRole"/>
27+
<argument name="restrictedRole" value="Media Gallery"/>
28+
</actionGroup>
29+
<actionGroup ref="AdminUserClickRoleResourceTabActionGroup" stepKey="switchToRoleResourceTab"/>
30+
<actionGroup ref="AdminAddRestrictedRoleActionGroup" stepKey="addRestrictedRoleStores">
31+
<argument name="User" value="adminRole"/>
32+
<argument name="restrictedRole" value="Media Gallery"/>
33+
</actionGroup>
34+
<actionGroup ref="AdminUserSaveRoleActionGroup" stepKey="saveRole"/>
35+
<!--Create user and assign role to it-->
36+
<actionGroup ref="AdminCreateUserActionGroup" stepKey="createAdminUser">
37+
<argument name="role" value="adminRole"/>
38+
<argument name="User" value="admin2"/>
39+
</actionGroup>
40+
</before>
41+
<after>
42+
<actionGroup ref="logout" stepKey="logoutAsSaleRoleUser"/>
43+
<actionGroup ref="LoginAsAdmin" stepKey="loginAsAdmin"/>
44+
<!--Delete created data-->
45+
<actionGroup ref="AdminUserOpenAdminRolesPageActionGroup" stepKey="navigateToUserRoleGrid"/>
46+
<actionGroup ref="AdminDeleteRoleActionGroup" stepKey="deleteUserRole">
47+
<argument name="role" value="adminRole"/>
48+
</actionGroup>
49+
<actionGroup ref="AdminOpenAdminUsersPageActionGroup" stepKey="goToAllUsersPage"/>
50+
<actionGroup ref="AdminDeleteNewUserActionGroup" stepKey="deleteUser">
51+
<argument name="userName" value="{{admin2.username}}"/>
52+
</actionGroup>
53+
</after>
54+
<!--Log out of admin and login with newly created user-->
55+
<actionGroup ref="logout" stepKey="logoutOfAdmin"/>
56+
<actionGroup ref="LoginAsAdmin" stepKey="loginAsNewUser">
57+
<argument name="adminUser" value="admin2"/>
58+
</actionGroup>
59+
<actionGroup ref="AssertUserRoleRestrictedAccessActionGroup" stepKey="assertRestrictPage"/>
60+
</test>
61+
</tests>

app/code/Magento/Backend/Test/Unit/Model/UrlTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -190,7 +190,7 @@ public function testFindFirstAvailableMenuDenied()
190190

191191
$this->_menuMock->expects($this->any())->method('getFirstAvailableChild')->will($this->returnValue(null));
192192

193-
$this->assertEquals('*/*/denied', $this->_model->findFirstAvailableMenu());
193+
$this->assertEquals('*/denied', $this->_model->findFirstAvailableMenu());
194194
}
195195

196196
public function testFindFirstAvailableMenu()
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!--
3+
/**
4+
* Copyright © Magento, Inc. All rights reserved.
5+
* See COPYING.txt for license details.
6+
*/
7+
-->
8+
<actionGroups xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
9+
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/actionGroupSchema.xsd">
10+
<actionGroup name="AdminUserClickRoleResourceTabActionGroup">
11+
<annotations>
12+
<description>Switch to role resource tab.</description>
13+
</annotations>
14+
<click selector="{{AdminEditRoleInfoSection.roleResourcesTab}}" stepKey="clickRoleResourcesTab" />
15+
</actionGroup>
16+
</actionGroups>
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!--
3+
/**
4+
* Copyright © Magento, Inc. All rights reserved.
5+
* See COPYING.txt for license details.
6+
*/
7+
-->
8+
<actionGroups xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
9+
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/actionGroupSchema.xsd">
10+
<actionGroup name="AdminUserOpenAdminRolesPageActionGroup">
11+
<annotations>
12+
<description>Navigate to User Role Grid</description>
13+
</annotations>
14+
<amOnPage url="{{AdminRolesPage.url}}" stepKey="navigateToUserRoleGrid" />
15+
<waitForPageLoad stepKey="waitForRolesGridLoad" />
16+
</actionGroup>
17+
</actionGroups>
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!--
3+
/**
4+
* Copyright © Magento, Inc. All rights reserved.
5+
* See COPYING.txt for license details.
6+
*/
7+
-->
8+
<actionGroups xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
9+
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/actionGroupSchema.xsd">
10+
<actionGroup name="AdminUserSaveRoleActionGroup">
11+
<annotations>
12+
<description>Click to Save Role</description>
13+
</annotations>
14+
<click selector="{{AdminEditRoleInfoSection.saveButton}}" stepKey="clickSaveRoleButton" />
15+
<see userInput="You saved the role." stepKey="seeUserRoleSavedMessage"/>
16+
</actionGroup>
17+
</actionGroups>

0 commit comments

Comments
 (0)