36 private $aclDataCache;
48 \
Magento\Framework\Acl\Builder $aclBuilder,
49 \Psr\Log\LoggerInterface
$logger,
50 \
Magento\Framework\Acl\RootResource $rootResource,
52 \
Magento\Framework\Acl\Data\CacheInterface $aclDataCache =
null 54 $this->_aclBuilder = $aclBuilder;
56 $this->_rootResource = $rootResource;
59 \
Magento\Framework\Acl\Data\CacheInterface::class
70 $this->
_init(
'authorization_rule',
'rule_id');
87 $condition = [
'role_id = ?' => (int)
$roleId];
91 $postedResources =
$rule->getResources();
92 if ($postedResources) {
94 'resource_id' => $this->_rootResource->getId(),
97 'permission' =>
'allow',
101 if ($postedResources === [$this->_rootResource->getId()]) {
111 $acl = $this->_aclBuilder->getAcl();
113 foreach ($acl->getResources() as $resourceId) {
114 $row[
'permission'] = in_array($resourceId, $postedResources) ?
'allow' :
'deny';
115 $row[
'resource_id'] = $resourceId;
127 $this->aclDataCache->clean();
128 }
catch (\
Magento\Framework\Exception\LocalizedException $e) {
131 }
catch (\Exception $e) {
133 $this->_logger->critical($e);
_prepareDataForTable(DataObject $object, $table)
_init($mainTable, $idFieldName)
__construct(\Magento\Framework\Model\ResourceModel\Db\Context $context, \Magento\Framework\Acl\Builder $aclBuilder, \Psr\Log\LoggerInterface $logger, \Magento\Framework\Acl\RootResource $rootResource, $connectionName=null, \Magento\Framework\Acl\Data\CacheInterface $aclDataCache=null)