Magento 2

ACL “Access Control Lists”, permissões de usuário – Magento 2

Tutorial rápido ensinando a como adicionar novas permissões de controle de acesso “ACL” em um módulo no Magento 2.

O controle de acesso do Magento 2 é um robusto sistema de autenticação aonde é possível criar Regras de Lista de Controle de Acesso que permite que o administrador de uma loja defina às funções finais para cada usuário em seu sistema.

Sobre ACL

Todo usuário tem uma função e propósito específicos. Para atingir seus objetivos, cada usuário deve poder acessar determinados recursos e executar ações específicas. Permitir que os usuários acessem os recursos sem limites pode comprometer a segurança do Magento.

A Lista de Controle de Acesso (ACL) é um conjunto de permissões (direitos de acesso) que determinados usuários têm para determinados recursos.

Quando um usuário deseja executar uma ação específica com um recurso (por exemplo, atualizar as informações do cliente), o Magento verifica a permissão para essa combinação de usuário, recurso e ação. Se a ação for permitida, o usuário pode prosseguir. Caso contrário, a ação é negada.

Neste post iremos ver como funciona e como podemos adicionar uma nova permissão para o nosso módulo personalizado.

Vamos partir do principio que você já tenha desenvolvido a estrutura básica de um módulo no Magento 2.

Caso você não tenha desenvolvido ainda, utilize este Post: Como criar um Módulo no Magento 2

Criando a Regra de permissão

Crie o seguinte arquivo: app/code/Rogertakemiya/Custom/etc/acl.xml

Conteúdo:

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Acl/etc/acl.xsd">
     <acl>
        <resources>
            <resource id="Magento_Backend::admin">
                <resource id="Rogertakemiya_Custom::custom" title="Custom Title" sortOrder="51">
                    <resource id="Rogertakemiya_Custom::post" title="Posts" sortOrder="10"/>
                    <resource id="Rogertakemiya_Custom::custom_configuration" title="Configuration" sortOrder="99" />
                </resource>
                <resource id="Magento_Backend::stores">
                    <resource id="Magento_Backend::stores_settings">
                        <resource id="Magento_Config::config">
                            <resource id="Rogertakemiya_Custom::custom_config" title="Custom Title"/>
                        </resource>
                    </resource>
                </resource>
            </resource>
        </resources>
    </acl>
</config>

Limpe o cache da loja e acesse: System > Permissions > User Roles

Pronta, as novas permissões estão disponíveis para utilização.

Verificando se o usuário possuí uma permissão “ACL” – Magento 2

Post Recentes

Bloquear .env e .git no nginx: as regras que ainda deixam o arquivo vazar

Negar /.env no nginx parece resolvido até alguém pedir /wp-content/uploads/.env ou backup.sql. As regras que testei e os furos que…

14 horas atrás

Canonical errado no Yoast: corrigindo pelo filtro wpseo_canonical

O Search Console marca suas páginas 2, 3 e 4 como alternativas da página 1? Ajuste a tag canônica do…

17 horas atrás

Layout XML do Magento 2: remover bloco de módulo de terceiro

Um módulo de terceiro plantou um banner no topo da loja e você não quer desinstalar nada: tire o bloco…

1 dia atrás

Restaurar dump do Magento 2 em outro servidor: trocar a base_url no SQL

Importou o banco de produção e o site pula para o domínio antigo? Rode o UPDATE em core_config_data, limpe o…

2 dias atrás

Criar exceção customizada em PHP: quando estender Exception compensa

Seu catch trata pedido inexistente e banco fora do ar do mesmo jeito. Veja como criar exceção customizada em PHP…

3 dias atrás

DataProvider Magento 2: form do admin abre com campos vazios ao editar

O form do admin salva mas abre em branco na edição: veja o getData() indexado pelo id da entidade e…

4 dias atrás