Symfony2最佳实践可编辑文本sonata管理捆绑包


Symfony2 Best Practices Editable text sonata admin bundle

我正在使用sonata管理包进行一个symfony2项目。我在我的网站上有一些可编辑的文本,比如"演示文稿"实际上"等等…

我找到了一个解决方案,但它感觉不是一个好方法。

我创建了一个实体可编辑文本,我在其中映射一个密钥,内容如下:

key=>"演示"content=>"这是我的演示文稿"

我对我所有的EditableText都是这样做的。

这样做会让我在我的sonata管理包中找到一个EditableText列表,这对非技术人员来说是不"用户友好"的。如果他删除了一行,网站就找不到内容。。。等

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

我不介意改变我的观念。

如果你有任何提示、建议。。。

谢谢并为我的英语感到抱歉;)

如果您想保留您的概念,可以使用基于角色的安全方法来限制编辑器的访问。您可以只授予编辑器角色LIST、VIEW、EDIT,如SonataAdminBundle文档的安全部分所述。通过这种方式,管理员(你)可以为你的网站创建具有所需密钥的实体,编辑器可以查看和更新它们。

例如:当您将管理服务定义为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