• This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn more.

XF 1.5 Question on retrieving node permissions by user group instead of user id

threadloom

Active member
#1
Hi,

We're trying to retrieve node permissions by user group instead of user id. For now, we're looking specifically at user groups 1 (Unregistered) and 2 (Registered).

Based on reading the KB article and other posts here, it seems like we have to use the permission combinations to do that, but we're not 100% sure of the logic. Our understanding of permission combinations is that they're a way to find permissions for a user who is in all of the groups in user_group_list.

Currently we have something like this:

For the user group, fetch the permission combination where user_id = 0 and user_group_list = "<1|2>".

And:
Code:
XenForo_Node_Model->getNodePermissionsForPermissionCombination(<combination ID>)

Questions:
  • Can we assume there will be exactly 1 row in xf_permission_combinations where user_id = 0 AND user_group_list = "<1|2>"?
  • How would we fetch the correct permission combination for other user groups, where it appears that there is no row for that group in user_group_list by itself?

Thanks in advance...
 

Xon

Well-known member
#2
This isn't a valid approach to resolving the effective XF permissions as, XF permissions are a combination of every group by user and by groups from the content (ie node) and then per-user permissions from content.

You would end up needing to get multiple rows from xf_permission_entry_content and xf_permission_entry tables, and manually combine them.

Generally, you need to fetch the permission_combination_id for a user and pass that down.
 

threadloom

Active member
#3
Thanks.

So to confirm:

There's no way to get permissions at the group level even if there is a permission_combination with user_id=0 and user_group_list="<user_group_id>"?

i.e., the only way would be to find a user who is in *only* the group in question and get their permissions?