Symfony2 最佳实践可编辑文本奏鸣曲管理包

Symfony2 Best Practices Editable text sonata admin bundle

我正在使用 sonata admin bundle 开发一个 symfony2 项目。我的网站上有一些可编辑的文本,例如 "presentation" "actually" 等...

我找到了解决方案,但我觉得这不是个好方法。

我创建了一个实体 EditableText,我在其中映射了一个内容如下的键:

键 => "presentation" 内容 => "this is my presentation"

我对我的所有 EditableText 都做同样的事情。

这样做会让我在我的奏鸣曲管理包中找到一个 EditableText 列表,这不是 "user friendly" 非技术人员的列表。如果他删除一行,网站就找不到内容……等……

我想在奏鸣曲中有一个字段,用户可以在其中编辑每个文本,但不能修改它们的键或删除一行或其他内容。

我不介意改变我的观念。

如果您有任何提示、建议,...

谢谢,对不起我的英语 ;)

如果您想保留自己的概念,可以使用基于角色的安全方法来限制编辑者 的访问权限。您可以只授予编辑器 ROLES LIST、VIEW、EDIT,如 the security section of the SonataAdminBundle documentation 中所述。通过这种方式,管理员(您)可以使用您网站所需的密钥创建实体,编辑器可以查看和更新​​它们。

例如:当您将管理服务定义为 sonata.admin.editable_text

您必须分配角色

  • ROLE_SONATA_ADMIN_EDITABLE_TEXT_LIST
  • ROLE_SONATA_ADMIN_EDITABLE_TEXT_VIEW
  • ROLE_SONATA_ADMIN_EDITABLE_TEXT_EDIT

您可以使用 security 配置的 role_hierarchy 指令轻松地将这些角色组合成一个角色:

security:
# ...
role_hierarchy:

    # group the roles for your convenience, 
    ROLE_SONATA_EDITOR:
        - ROLE_SONATA_ADMIN_EDITABLE_TEXT_LIST
        - ROLE_SONATA_ADMIN_EDITABLE_TEXT_VIEW
        - ROLE_SONATA_ADMIN_EDITABLE_TEXT_EDIT