Symfony2角色混乱;如何不将它们存储在数据库中?

时间:2014-06-16 19:26:28

标签: symfony

我正在开发一个Symfony应用程序,该应用程序将具有可分配给用户的一些基本角色。 注意,我没有使用FOSUserBundle,因为我不需要超过一半的功能。

我在数据库中定义了我的用户,但我想将角色定义保留在数据库之外。但是我发现的几个示例和其他教程将角色保留在数据库中,并使用ManyToMany关系将它们分配给用户。这对我来说似乎很奇怪,因为角色的实际使用被硬编码到应用程序中

例如,如果我有一个自定义角色ROLE_EDITOR,我可以将几个路由和控制器限制为ROLE_EDITOR。为什么我要在数据库中“定义”这个角色?这意味着在开发我的应用程序并添加新用户角色时,我必须编写脚本以编程方式将新角色插入到数据库中,或者在部署使用该角色的代码之前手动执行此操作。我不希望管理员能够添加/编辑/删除角色。它应该是以编程方式完成的设计决策。

在Drupal中,有一个角色和权限的概念。您可以在代码中定义权限并检查这些权限,然后在数据库中定义角色并为其分配权限。但似乎Symfony只有Roles的概念。

我希望有人可以为我填写一条丢失的信息。如何实现在数据库中完成角色分配的系统,但角色本身仅通过代码进行管理?

我的直觉是创建一个与User相关的单个实体,并为ROLE_NAME提供一个字符串字段。但这似乎违背了拥有一个真正的Role实体的范式。

0 个答案:

没有答案