私は次のようにデータベーステーブルを設定しました:
table: group
id name subGroupOf
1 grandparent NULL
2 parent 1
3 child 2
これが私がphpでやろうとしていることです:
ユーザーがページにアクセスすると、ページはauth()関数に「子」権限が必要であることを通知します。「子」は「親」のサブグループであるため、両方のグループのメンバーが許可を得る必要があります。ただし、親は「祖父母」のサブグループであるため、3つのグループすべてのメンバーがアクセスできる必要があります。
ネストできるサブグループの数に制限はないので、ループが必要になることはわかっていました。しかし、私は完全に空白を描いています。
グループが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
私はプログラミングにかなり慣れていないので、まだロジックを理解しています...何かアイデアはありますか?私のためにすべてを書く必要はありません(そのコードはとにかく要約されています)、構造を理解するのに助けが必要です。