es gäbe aber auch eine mathematische lösung für die rechte, die relativ elegant ist und auf zusätzliche tabellen und damit auf teure joins verzichten kann.
dazu definiert man die rechte folgendermaßen:
PHP-Code:
recht0 : 1 (2^0)
recht1 : 2 (2^1)
recht2: 4 (2^2)
recht3 : 8 (2^3)
alle rechte = (recht0 + recht1 + recht2 + recht3) = 8+4+2+1 = 15 = ( 2^(3+1) ) - 1
keine rechte: 0
user x hat recht 1 und recht 2 = recht1 + recht2 = 2 + 4 = 6
in binärdarstellung würde das so aussehen:
PHP-Code:
recht0 : 0001
recht1 : 0010
recht2 : 0100
recht3: 1000
alle rechte: 1111
keine rechte: 0000
recht1 + recht2 = 0110
mit einer generischen klasse, die die diversen berechnungen vollführt, wäre das ganze ein klacks
cya
axo