我已经像这样设置了一个数据库表:
table: group
id name subGroupOf
1 grandparent NULL
2 parent 1
3 child 2
这是我在 php 中尝试做的事情:
当用户访问一个页面时,该页面会告诉 auth() 函数他们需要“子”权限。因为“child”是“parent”的子组,所以两个组的成员都应该获得许可。但是,父母是“祖父母”的子组,因此所有三个组的成员都应该有权访问。
由于可以嵌套多少子组没有限制,我知道我需要一个循环。但我完全是空白。
我知道它需要检查组是否是 subGroupOf,如果是,则验证父组。这是我到目前为止所拥有的:
// Get group of current user
$group = mysqli_query($cxn,'SELECT group FROM user WHERE id='.$userID);
// Compare group to permissions
if($group == $permissions)
return TRUE;
// Check if group is a sub group
$subGroupOf = mysqli_query($cxn,'SELECT subGroupOf FROM group WHERE id="'.$group.'"');
if($subGroupOf == NULL)
{
// Wrong permissions
}
// Check if the parent group matches permissions
if($subGroupOf == $permissions)
return TRUE;
不知何故,我需要循环最后一部分,并在它到达时停止
$subGroupOf == NULL
我对编程很陌生,所以我仍在弄清楚逻辑......有什么想法吗?我不需要为我编写的全部内容(无论如何都总结了代码),我只需要帮助弄清楚结构..