TYPO3 - 无法通过流体继承访问权限
TYPO3 - No inheritance of access rights possible via fluid
如果 fe_group she/he 所属的子组 fe_group 被定义为该组,则可以通过 BE 授予 fe_user 访问内容的权限有权访问内容。
例如如果我定义 'Product Group 02' (uid=2) 应该可以通过 BE 访问特定内容,属于 'User Group 03' (uid=6) 的 fe_user 作为子组 [=24] =](uid=2),fe_user可以访问内容。
fe_group设置:
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
但是如果我直接在我的流体模板中定义 {f:cObject(typoscriptObjectPath: 'lib.usergroup')} == '2' 应该可以访问内容并随后 'User Group 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属于'Product Group 02'他就可以访问了。
但是是否可以坚持上述 fe_group 的结构并仍然允许上述 fe_user 通过流体访问内容?
TSFE:fe_user|user|usergroup
获取用户用户组中存储的内容。在您的情况下,存储了一个 6
,您将其与 2
进行比较,后者 returns false
。
此外,如果您为您的用户设置多个用户组,这样的解决方案可能会带来更多麻烦。在这种情况下,TSFE:fe_user|user|usergroup
将 return 以逗号分隔的用户组 uid 列表,例如 6,2,3
,您的条件将再次导致 false
。
正确的方法是使用 f:security.ifHasRole ViewHelper。
所以,像这样的东西应该可以帮助你:
<f:security.ifHasRole role="2">
Your stuff here
</f:security.ifHasRole>
如果 fe_group she/he 所属的子组 fe_group 被定义为该组,则可以通过 BE 授予 fe_user 访问内容的权限有权访问内容。
例如如果我定义 'Product Group 02' (uid=2) 应该可以通过 BE 访问特定内容,属于 'User Group 03' (uid=6) 的 fe_user 作为子组 [=24] =](uid=2),fe_user可以访问内容。
fe_group设置:
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
但是如果我直接在我的流体模板中定义 {f:cObject(typoscriptObjectPath: 'lib.usergroup')} == '2' 应该可以访问内容并随后 'User Group 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属于'Product Group 02'他就可以访问了。
但是是否可以坚持上述 fe_group 的结构并仍然允许上述 fe_user 通过流体访问内容?
TSFE:fe_user|user|usergroup
获取用户用户组中存储的内容。在您的情况下,存储了一个 6
,您将其与 2
进行比较,后者 returns false
。
此外,如果您为您的用户设置多个用户组,这样的解决方案可能会带来更多麻烦。在这种情况下,TSFE:fe_user|user|usergroup
将 return 以逗号分隔的用户组 uid 列表,例如 6,2,3
,您的条件将再次导致 false
。
正确的方法是使用 f:security.ifHasRole ViewHelper。 所以,像这样的东西应该可以帮助你:
<f:security.ifHasRole role="2">
Your stuff here
</f:security.ifHasRole>