2016-09-12 4 views
0

fe_group she/heが所属する場合、コンテンツにアクセスできるグループとして定義されているfe_groupを持つことができます。TYPO3 - 流体によるアクセス権の継承なし

私が 'Product Group 02'(uid = 2)をBEを介して特定のコンテンツにアクセスする必要があると定義した場合、 'User Group 03'(uid = 6)に属するfe_userは、 'Product Group 02' = 2)、fe_userはコンテンツにアクセスできます。

fe_groupsセットアップ:

uid|title|subgroup 
1|Product Group 01| 
2|Product Group 02| 
3|Product Group 03| 
4|User Group 01|1 
5|User Group 02| 
6|User Group 03|2,3 

しかし、私は私のfluidtemplateで直接定義する場合に、{F:のcObject(typoscriptObjectPath: 'lib.usergroup')} == '2' コンテンツへのアクセス権を持っているし、その後必要があります当然の

typoscript: 

lib.usergroup = TEXT 
lib.usergroup.data = TSFE:fe_user|user|usergroup 

partial.html 

<f:if condition="{f:cObject(typoscriptObjectPath: 'lib.usergroup')} == '2'"> 
... 
</f:if> 

// ...、fe_userは「プロダクトグループ02」に属している場合、彼はそれにアクセスすることができます:「ユーザグループ03」、言及fe_userがそれにアクセスすることはできません。

しかし、上記のfe_groups構造に固執しても、前述のfe_userが流体を介してコンテンツにアクセスすることは可能ですか?

答えて

3

TSFE:fe_user|user|usergroupは、ユーザーのユーザーグループに正確に格納されているものを取得します。あなたのケースでは6が格納されており、それを2と比較すると、falseが返されます。

さらに、このような解決策を設定すると、ユーザーのユーザーグループよりも多くの問題が発生する可能性があります。そのような場合、TSFE:fe_user|user|usergroup6,2,3のようにユーザーグループuidのカンマ区切りのリストを返し、条件はfalseに戻ります。

正しい方法で使用していますf:security.ifHasRole ViewHelper。 だから、このような何かがあなたを助けるはずです:

<f:security.ifHasRole role="2"> 
    Your stuff here 
</f:security.ifHasRole> 
+0

完璧な...これは動作します!どうもありがとう –

関連する問題