From b66bb3bd465394a214a78b625e2a9f70c8c871c6 Mon Sep 17 00:00:00 2001 From: Chauncey McAskill Date: Mon, 10 Feb 2020 15:40:28 -0500 Subject: [PATCH] Replace ACL component by Zend with Laminas Replaced 'zendframework/zend-permissions-acl' with 'laminas/laminas-permissions-acl', as per: https://www.zend.com/blog/zend-framework-transitions-linux-foundation --- README.md | 11 ++++---- composer.json | 2 +- src/Charcoal/User/Acl/Manager.php | 28 +++++++++---------- src/Charcoal/User/AclAwareTrait.php | 4 +-- src/Charcoal/User/Authorizer.php | 6 ++-- .../ServiceProvider/AuthServiceProvider.php | 4 +-- tests/Charcoal/User/Acl/ManagerTest.php | 6 ++-- tests/Charcoal/User/AuthorizerTest.php | 8 +++--- 8 files changed, 34 insertions(+), 35 deletions(-) diff --git a/README.md b/README.md index 83de04f..d2001bf 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ Charcoal User ============= -User defintion (as Charcoal Model), authentication and authorization (with Zend ACL). +User defintion (as Charcoal Model), authentication and authorization (with Laminas ACL). # Table of content @@ -27,7 +27,7 @@ The preferred (and only supported) way of installing _charcoal-user_ is with **c ## Dependencies - PHP 7.1+ -- `zendframework/zend-permissions-acl` +- `laminas/laminas-permissions-acl` - `locomotivemtl/charcoal-object` # The User object @@ -75,7 +75,7 @@ For quick prototypes or small projects, a full concrete class is provided as `\C # Authorization -User authorization is managed with a role-based _Access Control List_ (ACL). Internally, it uses [`zendframework/zend-permissions-acl`](https://github.com/zendframework/zend-permissions-acl) for the ACL logic. It is recommended to read the [Zend ACL documentation](https://zendframework.github.io/zend-permissions-acl/) to learn more about how it all works. +User authorization is managed with a role-based _Access Control List_ (ACL). Internally, it uses [`laminas/laminas-permissions-acl`](https://github.com/laminas/laminas-permissions-acl) for the ACL logic. It is recommended to read the [Laminas ACL documentation](https://docs.laminas.dev/laminas-permissions-acl/) to learn more about how it all works. There are 2 main concepts that must be managed, either from JSON config files or in the database (which works well with `locomotivemtl/charcoal-admin`), **roles** and **permissions**. @@ -102,9 +102,8 @@ To set up ACL, it is highly recommended to use the `\Charcoal\User\Acl\Manager`. ``` ```php -// Dependencies from `zendframework/zend-permissions` -use Zend\Permissions\Acl\Acl; -use Zend\Permissions\Acl\Resource\GenericResource as AclResource; +use Laminas\Permissions\Acl\Acl; +use Laminas\Permissions\Acl\Resource\GenericResource as AclResource; // Dependencies from `charcoal-user` use Charcoal\User\Acl\Manager as AclManager; diff --git a/composer.json b/composer.json index 466e8f4..060ca41 100644 --- a/composer.json +++ b/composer.json @@ -19,7 +19,7 @@ "require": { "php": ">7.1", "psr/log": "^1.0", - "zendframework/zend-permissions-acl": "^2.6", + "laminas/laminas-permissions-acl": "^2.7", "locomotivemtl/charcoal-object": "~0.7", "locomotivemtl/charcoal-config": "~0.10", "locomotivemtl/charcoal-factory": "~0.4", diff --git a/src/Charcoal/User/Acl/Manager.php b/src/Charcoal/User/Acl/Manager.php index bed7592..652703f 100644 --- a/src/Charcoal/User/Acl/Manager.php +++ b/src/Charcoal/User/Acl/Manager.php @@ -9,9 +9,9 @@ use Psr\Log\LoggerAwareInterface; use Psr\Log\LoggerAwareTrait; -// From 'zendframework/zend-permissions' -use Zend\Permissions\Acl\Acl; -use Zend\Permissions\Acl\Role\GenericRole; +// From 'laminas/laminas-permissions-acl' +use Laminas\Permissions\Acl\Acl; +use Laminas\Permissions\Acl\Role\GenericRole; /** * Manage ACL roles and permissions from config (arrays) or database. @@ -32,9 +32,9 @@ public function __construct(array $data) } /** - * @param Acl $acl The Zend Acl instant to load permissions to. - * @param array $permissions The array of permissions, in [role=>details] array. - * @param string $resource The Acl resource (string identifier) to load roles and permissions into. + * @param Acl $acl The Laminas Acl instant to load permissions to. + * @param array $permissions The array of permissions, in [role=>details] array. + * @param string $resource The Acl resource (string identifier) to load roles and permissions into. * @return void */ public function loadPermissions(Acl &$acl, array $permissions, $resource = '') @@ -45,10 +45,10 @@ public function loadPermissions(Acl &$acl, array $permissions, $resource = '') } /** - * @param Acl $acl The Zend Acl instance to load permissions to. - * @param PDO $dbh The PDO database instance. - * @param string $table The table where to fetch the roles and permissions. - * @param string $resource The Acl resource (string identifier) to load roles and permissions into. + * @param Acl $acl The Laminas Acl instance to load permissions to. + * @param PDO $dbh The PDO database instance. + * @param string $table The table where to fetch the roles and permissions. + * @param string $resource The Acl resource (string identifier) to load roles and permissions into. * @return void */ public function loadDatabasePermissions(Acl &$acl, PDO $dbh, $table, $resource = '') @@ -75,10 +75,10 @@ public function loadDatabasePermissions(Acl &$acl, PDO $dbh, $table, $resource = } /** - * @param Acl $acl The Zend Acl instant to add permissions to. - * @param string $role The role (string identifier) to add. - * @param array $permissions The permissions details (array) to add. - * @param string $resource The Acl resource (string identifier) to add roles and permissions into. + * @param Acl $acl The Laminas Acl instant to add permissions to. + * @param string $role The role (string identifier) to add. + * @param array $permissions The permissions details (array) to add. + * @param string $resource The Acl resource (string identifier) to add roles and permissions into. * @return void */ private function addRoleAndPermissions(Acl &$acl, $role, array $permissions, $resource) diff --git a/src/Charcoal/User/AclAwareTrait.php b/src/Charcoal/User/AclAwareTrait.php index 829a5d4..43d0efa 100644 --- a/src/Charcoal/User/AclAwareTrait.php +++ b/src/Charcoal/User/AclAwareTrait.php @@ -4,8 +4,8 @@ use RuntimeException; -// From 'zendframework/zend-permissions-acl' -use Zend\Permissions\Acl\Acl; +// From 'laminas/laminas-permissions-acl' +use Laminas\Permissions\Acl\Acl; /** * Provides access control list. diff --git a/src/Charcoal/User/Authorizer.php b/src/Charcoal/User/Authorizer.php index 234e611..d7d751b 100644 --- a/src/Charcoal/User/Authorizer.php +++ b/src/Charcoal/User/Authorizer.php @@ -8,8 +8,8 @@ use Psr\Log\LoggerAwareInterface; use Psr\Log\LoggerAwareTrait; -// From 'zendframework/zend-permissions' -use Zend\Permissions\Acl\Acl; +// From 'laminas/laminas-permissions-acl' +use Laminas\Permissions\Acl\Acl; // From 'charcoal-user' use Charcoal\User\UserInterface; @@ -23,7 +23,7 @@ * The required dependencies are: * * - `logger` A PSR3 logger instance. - * - `acl` A Zend ACL (Access-Control-List) instance. + * - `acl` A Laminas ACL (Access-Control-List) instance. * - `resource` The ACL resource identifier (string). * * ## Checking permissions diff --git a/src/Charcoal/User/ServiceProvider/AuthServiceProvider.php b/src/Charcoal/User/ServiceProvider/AuthServiceProvider.php index 9fbe06b..aae9a62 100644 --- a/src/Charcoal/User/ServiceProvider/AuthServiceProvider.php +++ b/src/Charcoal/User/ServiceProvider/AuthServiceProvider.php @@ -6,8 +6,8 @@ use Pimple\Container; use Pimple\ServiceProviderInterface; -// From 'zendframework/zend-permissions-acl' -use Zend\Permissions\Acl\Acl; +// From 'laminas/laminas-permissions-acl' +use Laminas\Permissions\Acl\Acl; // From 'charcoal-user' use Charcoal\User\Authenticator; diff --git a/tests/Charcoal/User/Acl/ManagerTest.php b/tests/Charcoal/User/Acl/ManagerTest.php index 644b369..d126cfa 100644 --- a/tests/Charcoal/User/Acl/ManagerTest.php +++ b/tests/Charcoal/User/Acl/ManagerTest.php @@ -5,9 +5,9 @@ // From Pimple use Pimple\Container; -// From 'zendframework/zend-permissions' -use Zend\Permissions\Acl\Acl; -use Zend\Permissions\Acl\Resource\GenericResource as Resource; +// From 'laminas/laminas-permissions-acl' +use Laminas\Permissions\Acl\Acl; +use Laminas\Permissions\Acl\Resource\GenericResource as Resource; // From 'charcoal-user' use Charcoal\User\Acl\Manager; diff --git a/tests/Charcoal/User/AuthorizerTest.php b/tests/Charcoal/User/AuthorizerTest.php index 8ce0071..37c33d1 100644 --- a/tests/Charcoal/User/AuthorizerTest.php +++ b/tests/Charcoal/User/AuthorizerTest.php @@ -5,10 +5,10 @@ // From Pimple use Pimple\Container; -// From 'zendframework/zend-permissions' -use Zend\Permissions\Acl\Acl; -use Zend\Permissions\Acl\Role\GenericRole as Role; -use Zend\Permissions\Acl\Resource\GenericResource as Resource; +// From 'laminas/laminas-permissions-acl' +use Laminas\Permissions\Acl\Acl; +use Laminas\Permissions\Acl\Role\GenericRole as Role; +use Laminas\Permissions\Acl\Resource\GenericResource as Resource; // From 'charcoal-user' use Charcoal\User\Authorizer;