如何在Symfony2中使用ACL

时间:2013-09-12 08:26:02

标签: symfony

我正在尝试为我的项目使用ACL,我以前没有这样做过。我只知道概念,它是什么以及为什么要使用它。

我运行此命令:

$ php app/console init:acl

我的数据库中有五个表。

我的问题是如何使用这些表,意味着如何在这些表中插入数据。

我也跟着steps from here

仍然没有掌握它,请帮助我。

1 个答案:

答案 0 :(得分:1)

你不应该直接使用表(但你已经知道),而是使用ACL实体(但它很棘手)。

有些人使用bunbles来简化这些操作。以下是如何使用它的示例:

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);

您可以对对象或直接对类(上层)应用权限