Search by

libriciel / cakephp5-acl

ludeusremi.dubourgetepommateaujinfantepviver

Acl Plugin for CakePHP framework

Package info

gitlab.adullact.net/Libriciel/archivage/cakephp5-acl

Homepage

Type:cakephp-plugin

pkg:composer/libriciel/cakephp5-acl

Statistics

Installs: 4 758

Dependents: 0

Suggesters: 0

3.0.10 2024-10-11 14:17 UTC

This package is auto-updated.

Last update: 2026-10-29 12:58:40 UTC


README

License build status coverage report

Plugin CakePHP 5 de gestion des droits par listes de contrôle d'accès (ACL) : arbres d'ARO (demandeurs) et d'ACO (ressources), permissions et adaptateurs de stockage.

Dépendance de

ProjetBuildCoverage
asalaebuild statuscoverage report
versaebuild statuscoverage report
asalae-corebuild statuscoverage report

Prérequis

  • PHP >=8.1

Installation

composer require libriciel/cakephp5-acl:dev-master

src/Application.php (asalae-core)

        $this->addPlugin('Acl', ['bootstrap' => true]);

Tables acos, aros et aros_acos : migration du plugin.

bin/cake migrations migrate -p Acl

Adaptateur utilisé par AclComponent : clé Acl.classname.

config/app_default.php (asalae)

    'Acl' => [
        'database' => 'default',
        'classname' => DbAcl::class,
    ],

Utilisation

Adapter

DbAcl (permissions en base de données), CachedDbAcl, IniAcl et PhpAcl (permissions dans un fichier), implémentant AclInterface.

Controller/Component

AclComponent : vérification (check()), attribution (allow()) et retrait (deny()) d'une permission d'un ARO (rôle, utilisateur) sur un ACO (action, ressource).

src/Model/Table/UsersTable.php (asalae)

            $registry = new ComponentRegistry(new Controller(new ServerRequest()));
            $Acl = new AclComponent($registry);

            $role = TableRegistry::getTableLocator()->get('Roles')->get($entity->get('role_id'));
            foreach ($validationActors as $actor) {
                $check = $Acl->check(
                    $role,
                    self::getAcoPath(
                        Hash::get($actor, 'validation_stage.validation_chain.app_type')
                    )
                );

Model

  • AclBehavior : crée automatiquement l'ARO et/ou l'ACO d'un enregistrement (requester, controlled ou both) ; l'entité doit définir parentNode()
  • Tables AcosTable, ArosTable et PermissionsTable (arbres et permissions)

Auth

ActionsAuthorize et CrudAuthorize : autorisation basée sur les ACL.

Tests

vendor/bin/phpunit

Licence

Portage CakePHP 5 du plugin cakephp/acl, licence MIT. Voir LICENSE.txt.