- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我对 FOSUserBundle 中的角色有点困惑。用户实体也有角色列,我们可以通过它为用户分配多个角色。根据发布在 Managing users/roles/groups in FOSUserBundle 的答案,我们不需要单独的实体或表来管理用户角色。
我还实现了 FOSUserBundle 组,其中还包含一组角色,用户可以分配给这些角色。所以,到目前为止,我在这里的理解是我们可以创建组来分配一组角色,以便可以使用组访问类似的角色。
现在,我遇到的问题是,如果可以单独从用户实体管理角色集,那么使用组的目的是什么,或者我如何合并来自用户实体和组实体的角色,或者我在这里缺少的东西?
最佳答案
Q: what is the purpose of using groups if set of roles can be managed from User Entity alone
A:答案可以从Using Groups With FOSUserBundle中提取:
Symfony2 supports role inheritance so inheriting roles from groups is not always needed. If the role inheritance is enough for your use case, it is better to use it instead of groups as it is more efficient (loading the groups triggers the database).
问:如果您问自己:什么是角色组?或我什么时候需要使用角色组?
A:实质上,“组”包含一组角色,按共同特征分类(就像电子商务的类别)。例如,以 ROLE_ADMIN
作为普通角色的控制面板应用程序的用户可能属于 MANAGER
组,而其他用户则属于 REVISER
(这取决于你需要什么)。将用户角色分类到组中可以更轻松地控制大量用户对特定工具或服务的访问。因此,使用或不使用角色组完全取决于您要对您的应用程序执行的操作以及用户可以与之进行交互的数量。
Q: how can I merge the roles from User entity and Group entity or something I am missing here?
A:如果角色继承不够,你想使用“组”,你需要在用户 -> 组 -> 角色实体之间创建关联,就像这个实现示例:
用户实体:
use Doctrine\Common\Collections\ArrayCollection;
/**
* USER ManyToMany with GROUP Unidirectional association
* @var ArrayCollection
* @ORM\ManyToMany(targetEntity="Group")
* @ORM\JoinTable(name="user_groups")
* @Assert\Valid
*/
protected $groups;
public function __construct()
{
$this->groups = new ArrayCollection(); <-- add this line to the constructor
}
/**
* Get all Groups added to the administrator
* @return ArrayCollection $groups
*/
public function getGroups()
{
return $this->groups;
}
/**
* Add Group $group to the administrator
*
* @param \Group $group
* @return void
*/
public function addGroup(Group $group)
{
if (!$this->groups->contains($group)) {
$this->groups->add($group);
}
}
/**
* Remove Group from the user
* @param \Group $group
* @return void
*/
public function removeGroup(Group $group)
{
if ($this->groups->contains($group)) {
$this->groups->removeElement($group);
}
}
/**
* Get all Roles added to the User
* @return array
*/
public function getRoles()
{
$roles = [];
/** @var ArrayCollection $groups */
$groups = $this->getGroups();
foreach ($groups as $group) {
$roles = array_merge($roles, $group->getRoles()->toArray());
}
$roles = array_unique($roles);
# store the roles in the property to be serialized
$this->roles = $roles;
return $roles;
}
组实体:
/**
* GROUP ManyToMany with ROLE Unidirectional Association
* @var ArrayCollection
* @ORM\ManyToMany(targetEntity="Role")
* @ORM\JoinTable(name="user_group_roles")
* @Assert\Valid
*/
protected $roles;
public function __construct()
{
$this->roles = new ArrayCollection();
}
/**
* Return all Roles added to this Group
*
* @return \Doctrine\Common\Collections\ArrayCollection $roles
*/
public function getRoles()
{
return $this->roles;
}
/**
* Add Role $role to the Group
*
* @param Role $role
* @return void
*/
public function addRole(Role $role)
{
if (! $this->roles->contains($role)) {
$this->roles->add($role);
}
}
/**
* Remove Role from the Group
*
* @param Role $role
* @return void
*/
public function removeRole(Role $role)
{
if ($this->roles->contains($role)) {
$this->roles->removeElement($role);
}
}
就是这样。希望对你有所帮助。
关于php - FOSUserBundle,用户(角色)和组(角色)之间的关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29073450/
抱歉,问题标题含糊不清!我有一个 ASP.NET 应用程序,可与其他第三方软件配合使用(Burning Glass - 通过 tcp/ip 连接到 Web 应用程序,需要 - 正确配置的 dns 条目
我正在开展一个项目,将一个大型网站分解为更小、更具体的网站。我需要能够将对这些网站的访问限制为仅具有必要权限的用户,并且希望尽可能利用现有的成员资格/角色数据模型。 因此,理想情况下,我想将潜在的多个
抱歉,问题标题含糊不清!我有一个 ASP.NET 应用程序,可与其他第三方软件配合使用(Burning Glass - 通过 tcp/ip 连接到 Web 应用程序,需要 - 正确配置的 dns 条目
我对 FOSUserBundle 中的角色有点困惑。用户实体也有角色列,我们可以通过它为用户分配多个角色。根据发布在 Managing users/roles/groups in FOSUserBun
原谅我的新手问题,但我想按顺序执行三个任务并在剧本中使用两个角色: 任务 角色 任务 角色 任务 这是我到目前为止(任务,角色,任务): --- - name: Task Role Task ho
在触发器中,我想检查哪些角色对 USER() 有效,而不是 CURRENT_USER()。(认识到 CURRENT_USER() 返回触发器的 DEFINER)。 是否有任何类型的 USER_ROLE
我有一套Ansible playbooks 和主要的 yml 文件是这样的 - hosts: all roles: - common - install_nginx 我想在触发剧本
因此,我有以下代码输出安装的所有功能和角色: Import-Module ServerManager $Arr = Get-WindowsFeature | Where-Object {$_.Inst
我已经寻找了一段时间,并且已经手动完成了角色和权限的许多部署,但是有什么方法可以在Sitecore中为角色/权限创建一个程序包(或等效程序包)? 当您没有选择从一个环境到另一个环境进行完全部署时,使用
我想找到或创建一个与所有者或至少贡献者具有相同功能的 azure 角色。但此角色不应该有权创建 azure 资源。 我一直在浏览现有的预定义角色。 最佳答案 这在 Azure RBAC 上下文中没有任
我在文档中找不到答案,也找不到示例:是否可以在 role/defaults/ 中命名除 main.yml 之外的文件?我的意思是,main.yml 是具有默认值的文件的唯一有效名称吗? 最佳答案 根据
我尝试了kubectl get sa default命令,但只看到一些非常基本的值。在k8s中查看与特定服务帐户关联的权限/角色的命令是什么? 最佳答案 以下命令可能会有所帮助。它基本上获得RoleB
有没有办法告诉 Spring 在我制作的自定义用户 bean 中找到用户的角色? http://static.springsource.org/sprin...ns-config.html 因此,如果
在我的 playbook 中运行几次 Play 后,我想验证我的应用程序的部署。 在我的角色之一中,我有以下任务,将创建的 ec2 实例添加到“已启动”的主机: - name: Add new ins
我按如下方式将用户添加到角色(请注意,我在我的机器上运行下面显示的代码): Roles.AddUserToRole(oMU.UserName, "Role1"); 使用以下代码我检查用户是否在
我目前在为 postgresql 创建角色时遇到问题,这是我已经做过的,但自昨晚以来取得了任何进展 simplybel@simplybel:~$ sudo -u postgres createuser
一个项目现在有超过 200 个类,每个文件一个类,将它们划分到目录中似乎是恰当的。现在我正在考虑两种不同的策略; a) 按角色或层分组 repositories/ UserRepository
您如何为用户、角色和应用特定实体提供种子?似乎 IdentityModel 以它自己的上下文为目标? internal sealed class Configuration : DbMigration
摩尔庄园手游在六一儿童节上线之后,网上的争议声还是很多的,有夸赞的,称其找回了童年的回忆,也有吐槽的,觉得3d的设计很晕,没有以前的感觉,想要删除账号,那么大家知道怎么去注销吗,步骤流程是什么样的?
在 XP SP2 虚拟机中运行 Oracle 11gR1。完全披露:这是一项任务。 我试图在用户被授予 DBA 角色时进行审计,并在事件发生时发送电子邮件。 我相信命令 AUDIT DBA;将审核对
我是一名优秀的程序员,十分优秀!