This Symfony 2 Bundle provides an easy api to the Security/ACL component and an eventlistener for automatic ACL cleanup upon removal of domain objects. The installation is simple and by default does not change any behavior of your application.
Without this bundle you normally do this (taken from the ACL docs):
// creating the ACL
$aclProvider = $container->get('security.acl.provider');
$objectIdentity = ObjectIdentity::fromDomainObject($domainObject);
$acl = $aclProvider->createAcl($objectIdentity);
// retrieving the security identity of the currently logged-in user
$tokenStorage = $container->get('security.token_storage');
$user = $tokenStorage->getToken()->getUser();
$securityIdentity = UserSecurityIdentity::fromAccount($user);
// grant owner access
$acl->insertObjectAce($securityIdentity, MaskBuilder::MASK_OWNER);
$aclProvider->updateAcl($acl);
With this bundle you can simplify it to:
$tokenStorage = $container->get('security.token_storage');
$user = $tokenStorage->getToken()->getUser();
$aclManager = $container->get('projecta_acl.manager');
$aclManager->manageObjectAces()
->grant($domainObject, MaskBuilder::MASK_OWNER, $user);
The latest documentation can be found on aclbundle.chililabs.org.
To run the test suite, you need composer.
$ composer install
$ phpunit
ChiliLabs AclBundle is licensed under the MIT license.