Releases: LM-Commons/LmcRbacMvc
4.0.2
4.0.1
4.0.0
Version 4.0 - First Release
This is the first release of LmcRbcMvc version 4.
LmcRbacMvc v3 and LmcRbac v1 shared a lot of code.
LmcRbacMvc v4 is now based on LmcRbac v2 which was augmented such that common code is now part of LmcRbac.
This has rendered many components of LmcRbacMvc unnecessary and they are deprecated.
In addition, LmcRbac v2 is now based on laminas-permissions-rbac's Role classes and interfaces.
Therefore, LmcRbacMvc v4 is a major upgrade with many breaking changes that prevent
straightforward upgrading.
Please read the Upgrade guide before upgrading:
Namespace change
In an effort to In an effort to normalize LM-Commons components into a common Lmc namespace, the namespace will
be refactored to Lmc\Rbac\Mvc.
Please update your code to replace LmcRbacMvc
by Lmc\Rbac\Mvc
.
Deprecations
The following components that were shared with LmcRbac are deprecated in LmcRbacMvc and should be replaced by their
LmcRbac equivalent:
- Lmc\Rbac\Mvc\Exception\ExceptionInterface
- Lmc\Rbac\Mvc\Exception\InvalidArgumentException
- Lmc\Rbac\Mvc\Exception\RoleNotFoundException
- Lmc\Rbac\Mvc\Exception\RuntimeException
- Lmc\Rbac\Mvc\Permission\PermissionInterface
- Lmc\Rbac\Mvc\Identity\IdentityInterface
- Lmc\Rbac\Mvc\Role\RoleProviderInterface
Refactored and removed classes
Factories
- The factory classes were refactored from the
LmcRbacMvc\Factory
namespace to be colocated with
the service that the factory is creating. All the factories that were inLmcRbacMvc\Factory
namespace have been
deleted.
Role providers
The former LmcRbacMvc v3 role providers are no longer available and replaced by LmcRbac equivalent. LmcRbac will throw
an exception if your config file still refers to them. In addition, the role provider plugin manager
was removed as it was not necessary.
- LmcRbacMvc\Role\RoleProviderPluginManager no longer used
- LmcRbacMvc\Role\InMemoryRoleProvider replaced by a LmcRbac equivalent
- LmcRbacMvc\Role\ObjectRepositoryRoleProvider replaced by a LmcRbac equivalent
Assertion
- LMcRbacMvc\Assertion\AssertionPluginManagerFactory no longer used
- LMcRbacMvc\Assertion\AssertionPluginManager no longer used
Assertions refactoring
LmcRbacMvc is now using LmcRbac assertions and assertion plugin manager instead of its own.
Therefore all previous assertions in LmcRbacMvc v3 must now implement the \Lmc\Rbac\Assertion\AssertionInterface
otherwise LmcRbac will throw an exception.
\Lmc\Rbac\Assertion\AssertionInterface
is a more generic interface for asserting permissions. An assertion under this
interface will be passed the permission, identity and context whereas in LmcRbacMvc v3, the assertion is
passed the AuthorizationService from which one had to get the identity. Having the permission as a parameter allows to
reuse the same assertion to handle multiple permissions.
3.4.1
Release v3.4.0 - Added support for PHP 8.3
Updated PHP requirements
- Added PHP 8.2 and 8.3
- Dropped PHP 7.4
Updated dependencies
- Removed zfr/rbac v1. This package is no longer supported and was causing deprecation notices in PHP 8.
- Added lm-commons/rbac v1 which is a 1-for-1 clone of zfr/rbac which fixes the deprecations notices. It uses the same Rbac namespace.
Important note
LmcRbacMvc now includes lm-commons/rbac. If your project has its own dependency on zfr/rbac, you should update it to lm-commons/rbac to avoid namespace conflicts.
Release v3.3.2 - Moved to Psr/Container
Moved to Psr/Container
- Removed deprecated Interop/Container
- No changes to functionality
Release v3.3.1 - Add support for PHP 8.1
Add support for PHP 8.1
- Support for PHP 8.1
- Fixed deprecation notice in RbacCollector
- Dropped support for PHP 7.3
- Re-enabled test cases for
ObjectRepositoryRoleProvider
Release v3.3.0 - Add support for PHP 8
Add support for PHP 8
- Updated dependency to PHP 8
Important Note
In order to update to PHP 8, the test case for ObjectRepositoryRoleProvider
was temporarily removed. This is due to the fact that doctrine/doctrine-module
used by the test case cannot yet be updated to PHP 8.
Release v3.2.0 - Updated for doctrine-persistence v2
Updated for doctrine-persistence v2
- Updated
ObjectRepositoryRoleProvider.php
- Updated
ObjectRepositoryRoleProviderFactory.php
Documentation updates
- Updated documentation to reflect the use of doctrine-persistence v2
Breaking changes
- If you are using doctrine-persistence v1, please use LmcRbacMvc v3.1.x.
Release v3.1.3 - Updated dependency for doctrine
Added dependency on doctrine-persistence v1
If you require doctrine-persistence v2, use Version 3.2.x