特定的 Form Builder 权限通过 WEB-INF/resources/config/form-builder-permissions.xml 进行配置。
如果您希望多个类别的 Form Builder 用户在某些情况下编辑,例如,在 hr 应用程序中的表单,而其他人可以在销售应用程序中编辑表单,那么您需要设置 form-builder-permissions.xml。
注意:该文件以前称为 form-runner-roles.xml。
在此文件中,您将角色名称映射到应用程序和表单。 例如,以下内容告诉 Orbeon Forms,只有具有 hr-form-editor 角色的用户才能在 hr 应用程序中编辑或创建表单,并且只有具有 sales-form-editor 角色的用户才能在销售应用程序中编辑或创建表单。 正如您可以从语法中推断出的那样,您可以更加具体,并且只允许具有给定角色的用户访问特定应用程序中的特定表单。
<roles>
<role name="hr-form-editor" app="hr" form="*"/>
<role name="sales-form-editor" app="sales" form="*"/>
</roles>
注意:每个 <role> 元素都称为单个角色名称。 不能在 name 属性中放置多个以空格分隔的角色。
Orbeon Forms 可以根据从容器或 HTTP 标头获取的信息推断当前用户的角色。 以下两节详细介绍了这两种情况。 一旦您定义了 form-builder-permissions.xml 并为容器驱动或标头驱动的角色完成了适当的设置,如下所述:
-
表单生成器摘要页面将仅显示用户有权访问的表单。
-
当他们创建新表单时,如果用户无权在任何应用程序中创建表单,他们将看到一个下拉列表,其中列出了可能的应用程序,而不是看到可以输入应用程序名称的文本字段,如 如下图所示:
限制:此时不支持对 form-builder-permissions.xml 中表单名称的限制; 仅支持对应用程序名称的限制。 这意味着您应该始终使用 form="*"。 如果您定义对表单名称的限制,则不会在创建表单时强制执行,从而允许用户创建、保存和发布名称不合需要的表单。 但是,当他们返回摘要页面时,他们将无法看到他们创建的表单。
更多Jerry的原创文章,尽在:"汪子熙":