98 lines
3.0 KiB
PHP
Executable File
98 lines
3.0 KiB
PHP
Executable File
<?php
|
|
/**
|
|
* Copyright © Magento, Inc. All rights reserved.
|
|
* See COPYING.txt for license details.
|
|
*/
|
|
namespace Magento\Authorization\Model;
|
|
|
|
/**
|
|
* @magentoAppArea adminhtml
|
|
*/
|
|
class RulesTest extends \PHPUnit\Framework\TestCase
|
|
{
|
|
/**
|
|
* @var \Magento\Authorization\Model\Rules
|
|
*/
|
|
protected $_model;
|
|
|
|
/**
|
|
* @var \Magento\User\Model\User
|
|
*/
|
|
protected $user;
|
|
|
|
protected function setUp(): void
|
|
{
|
|
$this->_model = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(
|
|
\Magento\Authorization\Model\Rules::class
|
|
);
|
|
$this->user = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(
|
|
\Magento\User\Model\User::class
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @magentoDbIsolation enabled
|
|
*/
|
|
public function testCRUD()
|
|
{
|
|
$this->_model
|
|
->setRoleType('G')
|
|
->setResourceId('Magento_Backend::all')
|
|
->setPrivileges("")
|
|
->setAssertId(0)
|
|
->setRoleId(1)
|
|
->setPermission('allow');
|
|
|
|
$crud = new \Magento\TestFramework\Entity($this->_model, ['permission' => 'deny']);
|
|
$crud->testCrud();
|
|
}
|
|
|
|
/**
|
|
* @magentoDbIsolation enabled
|
|
*/
|
|
public function testInitialUserPermissions()
|
|
{
|
|
$expectedDefaultPermissions = ['Magento_Backend::all'];
|
|
$this->_checkExistingPermissions($expectedDefaultPermissions);
|
|
}
|
|
|
|
/**
|
|
* @covers \Magento\Authorization\Model\Rules::saveRel
|
|
* @magentoDbIsolation enabled
|
|
*/
|
|
public function testSetAllowForAllResources()
|
|
{
|
|
$resources = ['Magento_Backend::all'];
|
|
$this->user->loadByUsername(\Magento\TestFramework\Bootstrap::ADMIN_NAME);
|
|
$roleId = $this->user->getRole()->getRoleId();
|
|
$this->_model->setRoleId($roleId)->setResources($resources)->saveRel();
|
|
$expectedPermissions = ['Magento_Backend::all'];
|
|
$this->_checkExistingPermissions($expectedPermissions);
|
|
}
|
|
|
|
/**
|
|
* Ensure that only expected permissions are set.
|
|
*/
|
|
protected function _checkExistingPermissions($expectedDefaultPermissions)
|
|
{
|
|
$connection = $this->_model->getResource()->getConnection();
|
|
$this->user->loadByUsername(\Magento\TestFramework\Bootstrap::ADMIN_NAME);
|
|
$roleId = $this->user->getRole()->getRoleId();
|
|
$ruleSelect = $connection->select()
|
|
->from($this->_model->getResource()->getMainTable())
|
|
->where('role_id = ?', $roleId);
|
|
|
|
$rules = $ruleSelect->query()->fetchAll();
|
|
$actualPermissions = [];
|
|
foreach ($rules as $rule) {
|
|
$actualPermissions[] = $rule['resource_id'];
|
|
$this->assertEquals(
|
|
'allow',
|
|
$rule['permission'],
|
|
"Permission for '{$rule['resource_id']}' resource should be 'allow'"
|
|
);
|
|
}
|
|
$this->assertEquals($expectedDefaultPermissions, $actualPermissions, 'Default permissions are invalid');
|
|
}
|
|
}
|