Hallo!
Ich habe ein Array mit Gruppenrechten für eine bestimmte Funktion.
Die Gruppenrechte werden dabei, wie bei chmod, als Integer von 0-7 gespeichert.
Beispiel:
array(
[0] => array(
'group_id' => 1,
'rights' => 3
)
[1] => array(
'group_id' => 2,
'rights' => 4
)
)
Ich suche jetzt eine Funktion mit der ich die Rechte addieren kann. In dem Beispiel also zu max 7.
Umgedreht hätte ich auch gern eine Funktion die mir die Integer in entsprechende Rechte umwandeln kann. Als Rückgabewert vielleicht ein Array in der Art:
array(
'read' => true,
'write' => false,
'execute' => true
)
Oder als Rückgabewert:
if(checkRights(7, 'read') == true){ /* read... */}
Mir fehlt nur leider eine konkrete Idee dazu wie ich das am besten umsetzen kann.
Ich habe mir überlegt, die Integer zu Binärzahlen umzuwandeln und dann in einer Schleife die Nullen durch Einsen zu ersetzen. Ist das ein guter Ansatz oder gibt es da bereits etwas besseres?
Ich bin für jede Hilfe dankbar!