通过BE,如果她/他所属的fe_group具有作为子组的fe_group,则可以给予fe_user访问内容,该fe_group被定义为可以访问内容的组。
所以,例如如果我定义产品组02' (uid = 2)应该可以通过BE访问特定内容,BE是属于'用户组03'的用户组。 (uid = 6),其作为子组'产品组02' (uid = 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
但是如果我直接在我的flowtemplate中定义{f:cObject(typoscriptObjectPath:' lib.usergroup')} ==' 2'应该可以访问内容并随后访问用户组03'提到的fe_user无法访问它:
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属于&#39;产品组02&#39;他可以访问它。
但是,是否有可能坚持上述fe_groups结构并仍然通过流体提供上述fe_user对内容的访问权限?
答案 0 :(得分:3)
TSFE:fe_user|user|usergroup
获取用户的用户组中存储的内容。在您的情况下,存储了6
,并将其与2
进行比较,后者返回false
。
此外,如果为用户设置的用户组多于一个用户组,这样的解决方案可能会带来更多麻烦。在这种情况下,TSFE:fe_user|user|usergroup
将返回以逗号分隔的用户组uid列表,例如6,2,3
,您的条件将再次导致false
。
正确的方法是使用f:security.ifHasRole ViewHelper。 所以,这样的事情可以帮助你:
<f:security.ifHasRole role="2">
Your stuff here
</f:security.ifHasRole>