Das wird bei mir leider nicht realisierbar sein, da ich ein Basis-Script habe, welches mit beliebig vielen Plugins erweitert werden kann. Somit wäre es ein Problem, wenn das Galerie Script mit der Berechtigung "4" arbeitete und das Blog Script auch.
edit: Ach, jetzt versteh ich, was du meinst, Mod.
Jetzt wo ich länger drüber nachdenke, kommt mir meine Anfangslösung aber dennoch zunehmend gut vor. Und zwar, dass jede Galerie einfach ca. 5 (Erstellen, Löschen, Bearbeiten, Bild hochladen, Bild löschen) Spalten in der Benutzertabelle vornimmt.
Dagegen spricht allerdings, dass die Tabelle der Benutzergruppen schnell sehr groß wird.
Nehmen wir an, ich habe nur 5 Galerien, so hat die Tabelle der Benutzergruppen schon 25 Spalten mehr.
Dafür spricht, dass ich die Abfrage durch diese Funktion vereinfachen und globalisieren kann.
Quellcode
- function getusrright ($str) {
- if (!$_SESSION['logdIn'])
- return false;
- global $sql, $scriptnr;
- $sql->queryDb('SELECT `grpID` FROM `hphp'.$scriptnr.'_users` WHERE `ID` = '.$_SESSION['userID'].';');
- if (!$sql->getErr()) {
- $row = $sql->fetchRow();
- $sql->queryDb('SELECT `'.$str.'` FROM `hphp'.$scriptnr.'_groups` WHERE `ID` = '.$row[0].';');
- if (!$sql->getErr()) {
- $row = $sql->fetchRow();
- return (bool)$row[0];
- }
- }
- return -1;
- }
Alles anzeigen
Ist es nun ein Problem, Tabellen mit 100 oder sogar mehr Spalten zu haben (andere Plugins werden ja nach demselben Prinzip handeln)?
edit:
Ich habe mich nochmal mit Knolle unterhalten und tendiere nun stark zu MODs Variante.
Allerdings werde ich wohl eine Tabelle für die Rechte nehmen:
Quellcode
- CREATE TABLE `gal_usrright`
- (`grpID` INT,
- `canCrtGal` TINYINT(1) DEFAULT 0,
- `canDelGal` TINYINT(1) DEFAULT 0,
- `canEdiGal` TINYINT(1) DEFAULT 0,
- `canUplPic` TINYINT(1) DEFAULT 0,
- `canDelPic` TINYINT(1) DEFAULT 0,
- `canEdiPic` TINYINT(1) DEFAULT 0);
So in etwa. Dann muss ich zwar für jedes Script eine Funktion zum Abfragen schreiben, aber egal. (-:
Noch jemand Einwände?