Hallo,
Ich hab jetzt die SQL-Abfrage erstellt.
Info: Tabelle group_members verbindet Gruppe mit User (Spalte user_id und group_id).
Die andere Tabellen sind wie bereits gesagt, aber Tabelle groups und category zusätzlich mit Spalte lft und rgt für Nested Sets.
SELECT permission.category_id, permission.what
FROM category cat INNER JOIN category parent_cat ON (parent_cat.lft <= cat.lft AND parent_cat.rgt >= cat.rgt)
INNER JOIN permission ON(permission.category_id=parent_cat.cat_id)
INNER JOIN groups ON(permission.group_id=groups.group_id)
INNER JOIN group_members ON(group_members.group_id=groups.group_id)
WHERE cat.cat_id IN ($categorys) AND group_members.user_id=$user_id
$categorys: Liste der Kategorie-IDs (mit Komma getrennt), von der die Rechtezuordung abgefragt werden soll
$user_id: ID des Benutzers
Gibt diese Abfrage das richtige zurück? Das wäre sehr wichtig, immerhin geht es um die Sicherheit.
lg gow