2

SurfPlatformのルートスコープAPI、特にユーザーオブジェクトをカスタマイズしたい。つまり、ユーザーオブジェクトに新しいプロパティまたはメソッドを追加して、ユーザーがheader.inc.ftl[<#ifuser.isAdmin>]のように[共有]の特定のグループに属していることを確認します。

  1. どうすればこれを実装できますか?
  2. AlfrescoルートスコープオブジェクトはSurfPlatformルートスコープオブジェクトとして使用できますか?

サーフプラットフォームのルートオブジェクトをカスタマイズすることはわかりません。誰かが私を助けることができますか?

4

2 に答える 2

4

何を達成しようとしているのかはよくわかりませんが、ロールセキュリティモデルはspring-surf /springwebscriptsにハードコーディングされています。ゲスト、ユーザー、管理者がいます。あなたが望むものが別の類似した役割である場合、あなたは春の波のライブラリをハックする必要があります、すなわち:

org/springframework/extensions/surf/mvc/PageView.java
org/springframework/extensions/webscripts/ScriptUser.java
org/springframework/extensions/webscripts/Description.java
org/springframework/extensions/webscripts/connector/User.java

これは私が実装するためにしなければならなかったことですuser.isEmployee。このアプローチにより、新しい役割を他の役割と同じように文字通り扱うことができます。

あなたが使用することができます

<authentication>employee</authentication>

ページ記述子または

<item type="link" permission="employee" id="people">/people-finder</item>

ナビゲーションで。

ユーザーが特定のWebスクリプトの特定のグループに属しているかどうかを確認するだけでは、まったく別の話になり、同じ機能は提供されません。

後者が必要な場合は、

/alfresco/service/api/groups/{shortName}

ミスし、応答を介して動作します。

更新:アイテムのアクセス許可属性には、もう少し調整が必要です。でheader.get.js、新しい役割を伝播して、で適切に処理されますheader.inc.ftl

model.permissions =
{
    guest: user.isGuest,
    admin: user.isAdmin,
    employee : user.isEmployee
};
于 2012-09-06T08:24:28.647 に答える
-1

あなたはこれを試すことができます(JavaScriptで私は次のようなものを管理しました):

user = Application.getCurrentUser(context);
       String userName = user.getUserName();
       user.isAdmin() >>> result return true if user logining is admin

またはJSPの場合:

#{NavigationBean.currentUser.admin == true}

申し訳ありませんが、Surf Platformのルートオブジェクトについて話していることに気づきましたが、そこに配置したリンクは、3.3以降のAlfrescoバージョンでは非推奨になっています。あなたはまだとても古いものを使用していますか?JavaScript APIを使用する場合は、ブールisAdmin()を使用して「person」ルートオブジェクトを使用できます。

于 2012-09-06T06:42:29.497 に答える