2012-04-16 5 views
6

Tridionに現在ログインしているユーザーのTCM URIを取得するにはどうすればよいですか?JavaScriptコードで現在ログインしているユーザーのTCM URIを取得するにはどうすればよいですか?

Tridion 2011でGUI拡張を開発中で、コンポーネントが現在ログインしているユーザーにチェックアウトされているかどうかを確認する必要があります。現在ログインしているユーザーのTCM URIをcomponent.getLockedById()と比較する予定です。

TridionのJavaScriptファイルを見るときに、現在ログインしているユーザーのユーザー名をどこかに取得する方法を知っています。

EDIT
私は、少なくともユーザ名を取得するための一つの方法を見つけた:

var username = Tridion.ContentManager.UserSettings.getInstance().getUserName(); 
+1

であると考えているあなたが探してすることができるラインが

this._userSettings = Tridion.UI.UserSettings.getJsonUserSettings(true); 

だと思います現在のユーザーですか?あなたは通常、アイテムを開くことができるので、これを行う必要はありません。正しいOpenModeを選択することで、アイテムがチェックアウトされている場合の 'open'の動作を制御できます。 –

+0

コンポーネントがチェックインされていることを確認するコードを書いています。$ models.getItem()を使用してコンポーネント情報を取得し、必要に応じてコンポーネントをロードします。私は、このメソッドを使用するとコンポーネントが時には現在のユーザーによってチェックアウトされていることに気付きました(その前にチェックインされている場合)。その場合、チェックインする必要があります。ユーザーがチェックアウトしているかどうかを確認してください。 コンポーネントを開こうとすると、別の優れた方法になる可能性があります。私はそれを調べます! –

+0

あなたは間違った方法でアイテムを読み込んでいるようです。 "load"メソッドには、 "load(reload、openMode、suppressError)"という3つのパラメータがあります。キーは2番目のパラメータです。デフォルトでは "EDIT_WITH_FALLBACK"に設定されています。つまり、アイテムを読み込むと、可能であればチェックアウトされます。 あなたは何をする必要がありますか?明示的にopenModeパラメータを$ const.OpenMode.VIEWに設定するか、 "load"ではなく "staticLoad"メソッドを使用してください。 "staticLoad"は、デフォルトでVIEWオープンモードでアイテムをロードします。 –

答えて

5

私はこれをテストする機会がなかったが、それはSDL Tridionの2011年を通して見て価値がありますPowertoolsプロジェクト。あなたを助けるかもしれ

http://code.google.com/p/tridion-2011-power-tools/source/browse/trunk/PowerTools.Editor/PowerTools/Client/Shared/Scripts/utils.js

:で、ユーティリティファイルがあります。私はあなたが項目がチェックアウトされているかどうかをチェックする必要がありますなぜそれがUIコードの標準部分ではなく、カスタムPowerToolsの機能

+2

それだけです!ありがとう:) IDを取得するコード:Tridion.UI.UserSettings.getJsonUserSettings(true).User ["@ ID"] –

関連する問題