Gestion des droits d'admin
Les droits sont gérés via le fichier etc/acl.xml. Le fichier sert à déclarer les droits possibles, qui s'affichent ensuite dans le back-office dans System > Permissions.
Exemple généré par Mage2gen :
<?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="Adexos_Formation::request" sortOrder="10" title="request">
<resource id="Adexos_Formation::request_save" sortOrder="10" title="Save request"/>
<resource id="Adexos_Formation::request_delete" sortOrder="20" title="Delete request"/>
<resource id="Adexos_Formation::request_update" sortOrder="30" title="Update request"/>
<resource id="Adexos_Formation::request_view" sortOrder="40" title="View request"/>
</resource>
</resource>
</resources>
</acl>
</config>
Pour gérer les droits dans la configuration, exemple du module Magento_Catalog :
<resource id="Magento_Backend::stores">
<resource id="Magento_Backend::stores_settings">
<resource id="Magento_Config::config">
<resource id="Magento_Catalog::config_catalog" title="Catalog Section" translate="title" />
</resource>
</resource>
</resource>
Il est possible de tester si l'admin en cours a un certain droit via la fonction
/**
* @var \Magento\Framework\AuthorizationInterface
*/
private $authorization;
return $this->authorization->isAllowed('<resource demandée>');