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

もう 1 つの方法は、独自の共有構成フォーム エバリュエーターを作成することです (node-type など)。

これにより、ノードの種類とユーザー権限の役割/グループを確認できます

セットアップごとに 1 つの構成を記述できます (ユーザー グループ/ロールごと)。

...

注意!これはフォームで機能するため、純粋に表面的なセットアップであり、屋外インターフェイスであり、CIFS などはこのセットアップをサポートしません。

于 2014-06-11T17:19:30.590 に答える
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 に答える
0

これを行うにはいくつかの方法があります。

最も簡単な方法は、現在ログインしているユーザーがターゲット グループに含まれているかどうかに基づいて、フォーム フィールドの html を返す Web スクリプトを作成することです。次に、webscript への ajax 呼び出しを行う JavaScript のみであるフォーム コントロールを追加し、フォーム コントロール (ftl) で指定されたコンテナー div に結果を追加します。

使用できる 2 番目のアプローチは、「org.alfresco.repo.forms.processor.AbstractFilter」を拡張し、Java で機能を実装することです。現在ログインしているユーザーがターゲットグループに含まれていない場合は、おそらくフォームフィールドを生成して削除した後に実装できます。

これが少し役立つことを願っています... :)

于 2012-08-01T10:00:16.663 に答える