Magnolia CMS 5.5.5 从角色中选择

Posted

技术标签:

【中文标题】Magnolia CMS 5.5.5 从角色中选择【英文标题】:Magnolia CMS 5.5.5 Choose from roles 【发布时间】:2017-09-04 10:27:17 【问题描述】:

我正在寻找在页面属性对话框中选择某些角色的可能性。页面的某些部分应该只对某些角色可见。

我得到的是

- name: allowedRoles
  class: info.magnolia.ui.form.field.definition.MultiValueFieldDefinition
  label: Select Roles
  field:
    name: roleLinkField
    class: info.magnolia.ui.form.field.definition.LinkFieldDefinition
    targetWorkspace: userroles
    appName: security
    identifierToPathConverter:
      class: info.magnolia.ui.form.field.converter.BaseIdentifierToPathConverter

这让我只能选择用户而不是用户角色。我需要做什么才能从名为“角色”的“安全”子应用中进行选择?

【问题讨论】:

嗯。我希望它能按原样工作。现在无法检查代码。作为解决方法,您可以创建自定义应用程序(实际上只是复制安全应用程序)并将角色子应用程序移动到那里作为第一个工作台/子应用程序并参考那个。看看这是否能让你继续前进。 这是一个想法,但我不想那样做。如果你看到另一种可能性,请告诉我。 【参考方案1】:

好的,这花了一些时间才弄清楚,但最终结果还是比较简单:

在您要从不同子应用中明确选择的应用中定义chooseDialog(在您的情况下为security-app) 在chooseDialog 中,定义指向感兴趣子应用中的工作台的工作台字段(在您的情况下为角色)。必须在此处明确指定字段的类定义。 也在chooseDialog 中,定义contentConnector 指向感兴趣的连接器(在您的情况下在角色子应用中) 在要添加链接字段的对话框中,在链接字段的定义中,将appName 设置为应用程序(在您的情况下为security)并将targetWorkspace 设置为您链接的连接器的工作区来自上述步骤中的chooseDialog(在您的情况下为userroles)。

那么一切都应该工作。限制是每个应用程序只能有一个这样的选择对话框定义,因此您必须选择要从哪个子应用程序链接项目。

您想要的配置示例:https://gist.github.com/rah003/29910e92067effaebed9156d6bdc293a

HTH, 一月

【讨论】:

以上是关于Magnolia CMS 5.5.5 从角色中选择的主要内容,如果未能解决你的问题,请参考以下文章

Jackrabbit 索引配置白名单 (Magnolia CMS 5.5.5 Fulltextsearch)

Magnolia 5.5.5 Magnolia 中的索引配置

Magnolia CMS:从 JCR 配置中引用 YAML 配置

如何从 Magnolia CMS 的默认目录中替换现有命令

Magnolia 5.5.5 带有嵌套块的自定义内容编辑器

Magnolia 5.5.5 自定义内容编辑器应用程序(故事)自定义 CKEditor 配置