Reputation: 49
I am trying to use ACL for my project, I have not done it before. I know only the concepts, what it is and why to use it.
I run this command :
$ php app/console init:acl
and I got five tables in my database .
My question is how to use these tables, means how data will be inserted in these tables .
I also have followed steps from here
and still not getting the hang of it , please help me out .
Upvotes: 1
Views: 634
Reputation: 2949
You should'nt use table directly (but you already know), but ACL Entities instead (but it's tricky).
Some people worked on bunbles to simplify those actions. Here is an example on how to use it :
https://github.com/Problematic/ProblematicAclManagerBundle
$comment = new Comment(); // create some entity
$aclManager = $this->get('problematic.acl_manager');
// Adds a permission no matter what other permissions existed before
$aclManager->addObjectPermission($comment, MaskBuilder::MASK_OWNER, $userEntity);
// Replaces all current permissions with this new one
$aclManager->setObjectPermission($comment, MaskBuilder::MASK_OWNER, $userEntity);
$aclManager->revokePermission($comment, MaskBUILDER::MASK_DELETE, $userEntity);
$aclManager->revokeAllObjectPermissions($comment, $userEntity);
You can apply permission on objects or directly on classes (upper level)
Upvotes: 1