User für einen Request Rechte zuweisen
![](http://www.drupalcenter.de/files/noavatar_mini.gif)
am 04.04.2009 - 11:10 Uhr in
Hallo,
knifflige Angelegenheit: In D6 kann man über die Funktion user_access einem User für einen Request zusätzliche Rechte zuweisen. Dies wird z.B. in der D6er Version des Moduls 'forum_access' ausgenutzt. Gerne würde ich dies auch in D5 machen, aber leider fehlt user_access in D5 das dritte Argument 'reset', dass dies ermöglicht. Hat jemand eine Idee, wie man es bewerkstelligen kann, ohne user_access in D5 einfach durch die D6er Version zu überschreiben?
Gruß
Dirk
- Anmelden oder Registrieren um Kommentare zu schreiben
Re: User für einen Request Rechte zuweisen
am 04.04.2009 - 11:35 Uhr
In D6 kann man über die Funktion user_access einem User für einen Request zusätzliche Rechte zuweisen.
Nein, kann man nicht. Man kann damit lediglich prüfen, ob ein Benutzer aufgrund seiner Rollen bestimmte Rechte hat.
... aber leider fehlt user_access in D5 das dritte Argument 'reset', dass dies ermöglicht.
user_access
speichert das Ergebnis von Datenbankabfragen in einer statischen Variable. Nun kann es vorkommen, das sich innerhalb eines Requests die Rollen eines Benutzers oder die Berechtigungen einer Rolle ändern. Um sicherzugehen, das sich diese Änderungen sofort auswirken und nicht erst beim nächsten Request, kannuser_access
mit$reset == true
aufgerufen werden. Alleine dafür ist der Parameter$reset
da.In Drupal 5 fehlt dieser Parameter. Es gibt also keine Möglichkeit, sicherzustellen, das sich Änderungen der Rollen eines Benutzers oder der Berechtigungen einer Rolle im aktuellen Request auswirken.
--
![XING](http://www.xing.com/img/buttons/6_de_btn.gif)
Danke
am 05.04.2009 - 07:10 Uhr
Hallo,
Danke. Jetzt habe ich es endlich begriffen. Leider löst dies mein Problem nicht, denn eine Änderung der Rolle bzw. Berechtigungen soll sich sofort auswirken. Wäre es sehr unsauber, wenn man dem Modul einen Patch für die user_access Funktion in D5 beilegt, so dass die user_access um den Parameter Request ergänzt wird. Eine andere Lösung sehe ich für mein Problem nicht - zumindest keine schnelle.
Gruß
Dirk