Symfony2 FOSUserBundle 角色实体

2023-11-21

我目前正在尝试找出将教义持久角色实体实现为与 FOSUserBundle 兼容的 M2M 关系的最佳方法。以前,我仅使用默认实现的字符串,并使用学说数组映射来持久化它。

现在我需要将角色作为单独的实体,因为我们想要构建一个管理后端,其他人可以在其中授予用户角色。

基本上,这是一个令人头痛的问题。 FOS 接口是为字符串表示构建的,而不是为角色实体构建的。改变实现,你会破坏很多东西,例如用于提升用户的 FOS 命令。而且很难准确地弄清楚需要哪些接口才能让 symfony2 安全系统继续正常工作。

我可以重写角色管理代码并尽可能多地使用角色实体,例如:

$user->addRole(new Role('ROLE_FOO'));

但这会破坏命令和可能的现有代码吗?

或者继续使用:

$user->addRole('ROLE_FOO');

并将角色/实体管理器代码添加到addRole()(糟糕的设计)。

我注意到这是一个灰色区域(FOS 的角色实体),并且在 symfony2 板上和此处提到过,但没有像样的解决方案。

任何人有任何经验或能想到一个不错的解决方案吗?


我决定混合使用数组/ArrayCollection 实现。我尝试尽可能遵循现有的接口,以免破坏安全系统。我已将我的解决方案记录在http://blog.jmoz.co.uk/symfony2-fosuserbundle-role-entities

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Symfony2 FOSUserBundle 角色实体 的相关文章

随机推荐

  • 解析单个键/值的字符串的“ruby 方式”是什么?

    我正在尝试解析多行字符串并按照模式获取该行的其余部分 text hello john your username is jj thanks for signing up 我想提取 jj 也就是 您的用户名是 之后的所有内容 One way
  • 我可以检测到我的 Android 应用程序的特定权限已被删除吗?

    因此 随着 Android 4 3 的到来 我们可以选择性地禁用应用程序的特定权限 这显然可能会导致应用程序失去正确运行所需的权限的问题 当权限被撤销时 系统是否会广播一条消息 或者我如何知道我的应用程序不再拥有某个权限 理想情况下 我想通
  • 在枚举类型上实现“next”和“previous”的最佳方法是什么?

    假设我有一个枚举 enum E A B C 如图所示这个答案 by lucasmo 枚举值按照初始化的顺序存储在静态数组中 稍后您可以使用以下命令检索该数组 的克隆 E values 现在假设我想实现E getNext and E getP
  • newFixedThreadPool 与 newSingleThreadExecutor 的性能问题

    我正在尝试对我们的客户端代码进行基准测试 所以我决定编写一个多线程程序来对我的客户端代码进行基准测试 我正在尝试测量多少time 95 Percentile 下面的方法将采取 attributes deClient getDEAttribu
  • 如何在 WPF 应用程序中使用 RichTextBox 作为 NLog 目标?

    我阅读了以下文章 但都没有帮助获得与 Winforms 中相同的有效方式将日志从 NLog 打印到 RichTextBox 控制目标 如何在 WPF 应用程序中使用 NLog 的 RichTextBox Target WPF 将 RichT
  • 未指定类型的泛型类的数组

    在 C 中是否可以创建未指定泛型类型的数组 类似这样的事情 ShaderParam lt gt params new ShaderParam lt gt 5 params 0 new ShaderParam
  • C# REST 客户端使用 POST 发送数据

    我正在尝试向 REST Web 服务发送一个简单的 POST 请求并打印响应 代码如下 主要取自 Yahoo 开发人员文档和随部分文档提供的 MSDN 代码片段 我希望客户发送 请求方法 POST 即我期望 PHP 中的 SERVER RE
  • 使用 Android sqlite 数据库的自定义文件

    是否可以为 sqlite 数据库文件选择自定义位置 如果可能的话我想将数据库文件存储在存储卡中 如果用户从一张存储卡切换到另一张存储卡 我希望我的应用程序使用卡上可用的任何版本的数据库文件 默认情况下 您的数据库存储在数据 数据 your
  • 将值传递给 IValueConverter

    我有一个ListView有一个Grid有两列和许多行 每行都有一个TextBlock在每一列中Text属性绑定到 ListView 中的值ItemSource 我需要在第二个中对文本进行一些转换TextBlock取决于第一个值TextBlo
  • Bootstrap 4 导航栏固定在内容上方

    我正在使用 bootstrap4 固定顶部导航栏 它在普通浏览器中工作正常 但是 当我在移动设备 使用 chrome 开发选项的 Galaxy S5 上进行测试时 内容从导航栏后面开始 我在 CSS 中尝试了一些填充 但似乎无法让它正常工作
  • 如何确保在实体框架中使用存储库模式时创建代理?

    我的 SurveyController 类中有这个方法 public ActionResult AddProperties int id int propertyids int page 1 var survey uow SurveyRep
  • 如何对未签出的分支进行非快进 git 合并?

    我在树枝上a 我想合并分支b进入分支c 合并不是快进 但也不需要手动解析 也就是说 这不是最简单的情况 但也不是最困难的情况 因此这是 Git 无需人工即可自行完成的合并 有没有办法让我进行此合并b to c无需检查任何分支机构 如何 UP
  • Google Analytics v4 - 数据未显示在仪表板上

    我一直致力于将 Google Analytics v4 集成到我的应用程序中 我已经遵循了这个 https developers google com analytics devguides collection android v4 但是
  • 大量使用ViewBag

    我在 MVC 应用程序中大量使用 ViewBag 这被认为是不好的做法吗 我不确定是否要花时间创建 ViewModel 但我认为这更适合 MVVM 而不是 MVC 还是继续大量使用 ViewBag 支持和反对这一点的论据是什么 示例控制器方
  • 使用 PHP 通过表单发布 URL 时触发错误 403

    我在 apache 共享主机上使用 PHP 通过表单发布 URL 时遇到 403 Forbidden 错误 从现有的问题 表单提交时出现 403 错误 这很可能是由服务器上安装的 mod security 引起的 由于我使用共享托管 我无法
  • 找不到模块的声明文件

    我正在尝试使用我创建的 nodejs 包 有人可以指出我做错了什么吗 包结构如下 node modules my commons dist src helpers d ts helpers js index d ts index js no
  • 安卓。 SQLite异常:没有这样的列_id

    我在尝试获取存储在数据库中的信息并将其显示在 ListView 中时遇到一些麻烦 这是我想显示行的 ListActivity public class Prueba extends ListActivity Called when the
  • 如何在不使用数据库的情况下轻松存储持久数据?

    我正在尝试使用 Android 应用程序类 MyApplication java 将数据存储在一些字符串和整数的 ArrayList 中 我希望这些数据能够像数据库一样永久存储 但不使用数据库 简化我的应用程序 目前数据已存储 当我退出应用
  • 列出 sbt 1.2.8 中资源目录中的文件

    我有一个 Scala 应用程序 它处理来自某个目录的二进制文件resources 我想得到这个目录java io File并列出所有内容 在最新的 sbt 中 我无法直接做到这一点 我已经针对我的问题创建了最小的存储库 https gith
  • Symfony2 FOSUserBundle 角色实体

    我目前正在尝试找出将教义持久角色实体实现为与 FOSUserBundle 兼容的 M2M 关系的最佳方法 以前 我仅使用默认实现的字符串 并使用学说数组映射来持久化它 现在我需要将角色作为单独的实体 因为我们想要构建一个管理后端 其他人可以