0

我的问题或多或少在标题中,我在我的数据模型中添加了一个新的数据类型。

<type name="moi:montype">
  <title>titre type</title>
  <parent>cm:content</parent>
  <mandatory-aspects>
    <aspect>moi:monaspect</aspect>
  </mandatory-aspects>
</type>

这个使用了一个新方面,我在其中添加了一个新字段

<aspect name="moi:monaspect">
  <title>titre aspect</title>
  <properties>
    <property name="moi:monchamp">
      <type>d:text</type>
      <mandatory>false</mandatory>
    </property>
    ...
  </properties>
</aspect>

然后,我通过编辑文件 share-config-custom.xml 在共享表单中显示了这个新字段。

<config evaluator="node-type" condition="moi:montype">
  <forms>
    <form>
      <field-visibility>
        <show id="moi:monchamp"/>
        ...
      </field-visibility>
      <appearance>
        <field id="moi:monchamp" label="Champ texte" />
        ...
      </appearance>
    </form>
  </forms>
</config>

到那时,我可以测试我的更改并且新字段显示良好。但我想更进一步,并根据登录的用户组设置例如字段的显示。如果登录的用户是“特权组”的一部分,则显示该字段,否则将不显示,或仅在只读模式下显示。

你认为我们能做到吗?如何 ?我查看了文档,但找不到我的快乐。我不要求完整的解决方案,而是要遵循的提示。

谢谢您的帮助。

4

4 回答 4

1

每个字段都有一个组件渲染器。这些是使用 FreeMarker 实现的。大多数情况下,就像您的情况一样,您依赖于默认的组件渲染器。除了 Matjaz 提到的选项之外,另一个选项是将字段指向自定义渲染器。渲染器可以检查用户的组成员身份和该字段所需的组(例如,可能作为参数传入),然后决定是否显示自己。

于 2012-08-02T14:16:58.130 回答
0

另一种方法是编写自己的共享配置表单评估器(如 node-type ...)

这可以检查节点类型和用户权限角色/组

让您为每个设置(每个用户组/角色)编写一个配置

...

注意!这将适用于表单,因此纯粹是一种装饰设置,露天界面和 CIFS 等将不支持此设置。

于 2014-06-11T17:19:30.590 回答
0

有几种方法可以做到这一点。

最简单的方法是制作一个 webscript,它根据当前登录的用户是否在您的目标组中为表单字段返回 html。然后添加一个表单控件,它只是 javascript 对 webscript 进行 ajax 调用,并将结果附加到在表单控件 (ftl) 中指定的容器 div。

您可以使用的第二种方法是扩展“org.alfresco.repo.forms.processor.AbstractFilter”并在 Java 中实现该功能。如果当前登录的用户不在目标组中,您可能可以在生成并删除表单字段后实施。

希望这个对你有帮助... :)

于 2012-08-01T10:00:16.663 回答
0

没有简单的方法可以做到这一点,因为 alfresco 不允许您设置节点属性的权限。

每个字段都有控制模板,您可以定义自己的。在您的模板中,您将根据用户类型定义如何呈现此属性。

<config evaluator="node-type" condition="cm:content">
   <forms>
      <form>
         <appearance>
            <field id="cm:title">
               <control template="/org/alfresco/components/form/controls/yourOwnFtl.ftl" />
            </field>
         </appearance>
      </form>
   </forms>
</config>
于 2014-06-08T11:45:17.990 回答