gpt4 book ai didi

symfony - FOSUserBundle 组角色设置

转载 作者:行者123 更新时间:2023-12-04 05:53:41 25 4
gpt4 key购买 nike

我正在使用 FOSUserBundle 和 Group 选项。
注册工作。组的创建也有效。
如果我创建 2 个组,admin 和 client 并手动添加 a:1:{i:0;s:10:"ROLE_ADMIN";} 到 fos_group 表中的 admin 组,然后 MANULLY 设置和 fos_user_user_group 中的条目与用户到 admin 组,使用该用户登录将能够以管理员身份登录。

然而,显然这种方法有一些缺点。
我现在可以使用什么将用户添加到组中?使用promote 命令行选项只会将角色添加到该用户,但会添加到fos_user 表中,并且由于我使用的是组,所以我怀疑fos_user 表的roles 列不再使用。如果它仍然有用,我如何以编程方式将用户分配给一个组?

我的另一个大问题是如何为组分配角色。也许我对整个 Groups 的想法一无所知,但我希望能够在创建时为组添加角色,但是"new"表单只要求提供组名,而没有' 似乎不存在与组的用户提升命令等效的命令。

谢谢你。

最佳答案

如何以编程方式将用户分配到组?

$user->addGroup($group);

由于您使用的是 FOSUserBundle,因此您的用户实体扩展了 FOS\UserBundle\Model实现 GroupableInterface .所以你的用户类已经有组方法 getGroups, hasGroup($name), addGroup(GroupInterface $group), removeGroup(GroupInterface $group) .引用看这里 https://github.com/FriendsOfSymfony/FOSUserBundle/blob/master/Model/User.php

如何为组分配角色?
$em = $this->getDoctrine()->getEntityManager();

$group = new Group();
$group->setRoles(array());
$group->addRole('ROLE_ACTOR');
$em->persist($group);
$em->flush();

您必须自己实现角色分配,fosuserbundle 没有为此预定义表单。

关于symfony - FOSUserBundle 组角色设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15057088/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com