Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 基于动态角色和权限的Symfony复杂acl_Php_Symfony_Registration_Acl_Roles - Fatal编程技术网

Php 基于动态角色和权限的Symfony复杂acl

Php 基于动态角色和权限的Symfony复杂acl,php,symfony,registration,acl,roles,Php,Symfony,Registration,Acl,Roles,我想建立一个有多个用户的系统,每个用户可以被分配0到多个项目或项目(对象)部分的角色。每个角色可以有1到多个权限。可以动态创建角色,以便将其分配给用户。 但是,权限可以硬编码 我知道我应该使用ACL,但是我不知道如何在Symfony2中添加动态角色。另外,我应该使用投票者吗?希望下面的代码能帮助您 // creating the ACL $aclProvider = $this->get('security.acl.provider'); $objectIdentity = ObjectI

我想建立一个有多个用户的系统,每个用户可以被分配0到多个项目或项目(对象)部分的角色。每个角色可以有1到多个权限。可以动态创建角色,以便将其分配给用户。 但是,权限可以硬编码


我知道我应该使用ACL,但是我不知道如何在Symfony2中添加动态角色。另外,我应该使用投票者吗?

希望下面的代码能帮助您

// creating the ACL
$aclProvider = $this->get('security.acl.provider');
$objectIdentity = ObjectIdentity::fromDomainObject($the_object_to_be_granted);
$acl = $aclProvider->createAcl($objectIdentity);

$securityIdentity = new RoleSecurityIdentity("CUSTOM_ROLE_YOU_HAVE");

// grant owner access
$acl->insertObjectAce($securityIdentity, MaskBuilder::MASK_OWNER);// This is sample you can use any other masks you need
$aclProvider->updateAcl($acl);

您可以通过以下链接获得更多信息()

您是否有用户表和角色表,以及关系是否在您的实体中定义?您想自动向用户添加角色还是通过ACL将角色授予特定对象?@Javad是的,我有用户和角色表,我想通过ACL将角色授予特定对象,而不是直接授予权限。我在下面提供了一个答案,希望它能解决您的问题