Also, ich habe 3 Tabellen, user, module, gruppen.
Der User loggt sich also ein, kriegt die Rechte aus der Gruppentabelle bzw. der Zeile zu dessen Gruppe er gehört.
Die Rechte werden in der Session gespeichert.
Wenn ich nun ein Modul aufrufe möchte ich die Rechte so wie gefolgt abfragen.
Macht das Sinn so? Ist das effektiv? Performant?
Grundlegend gefragt, gehts besser oder einfacher?
Der User loggt sich also ein, kriegt die Rechte aus der Gruppentabelle bzw. der Zeile zu dessen Gruppe er gehört.
Die Rechte werden in der Session gespeichert.
Wenn ich nun ein Modul aufrufe möchte ich die Rechte so wie gefolgt abfragen.
Macht das Sinn so? Ist das effektiv? Performant?
Grundlegend gefragt, gehts besser oder einfacher?
PHP-Code:
<?
// module id test
$module_id = 23;
// read all/ write all / delete all / edit all / read own / write own / delete own / edit own / . / module ID /
$rights[] = 10111111.1;
$rights[] = 10111101.4;
$rights[] = 10011101.23;
reset($rights);
while (list($key, $val) = each($rights))
{
$temp = explode(".",$val);
if($temp[1] == $module_id)
{
$mod_rights[] = substr($temp[0],0,1); // read all
$mod_rights[] = substr($temp[0],1,1); // write all
$mod_rights[] = substr($temp[0],2,1); // delete all
$mod_rights[] = substr($temp[0],3,1); // edit all
$mod_rights[] = substr($temp[0],4,1); // read own
$mod_rights[] = substr($temp[0],5,1); // write own
$mod_rights[] = substr($temp[0],6,1); // delete own
$mod_rights[] = substr($temp[0],7,1); // edit own
}
}
if ($mod_rights[0] == 1)
{ echo "You can read all!\n";} else { echo "You can't read all!\n";}
if ($mod_rights[1] == 1)
{ echo "You can write all!\n";} else { echo "You can't write all!\n";}
if ($mod_rights[2] == 1)
{ echo "You can delete all!\n";} else { echo "You can't delete all!\n";}
if ($mod_rights[3] == 1)
{ echo "You can edit all!\n";} else { echo "You can't edit all!\n";}
if ($mod_rights[4] == 1)
{ echo "You can read your own!\n";} else { echo "You can't read your own!\n";}
if ($mod_rights[5] == 1)
{ echo "You can write your own!\n";} else { echo "You can't write your own!\n";}
if ($mod_rights[6] == 1)
{ echo "You can delete your own!\n";} else { echo "You can't delete own!\n";}
if ($mod_rights[7] == 1)
{ echo "You can edit your own!\n";} else { echo "You can't edit own!\n";}
?>
Kommentar