Rechteverwaltung bei Webprojekten

  • Ich tu seit Tagen rum und komm auf keinen Zweig.

    Problemstellung: Mehr oder weniger CMS wobei die jeweiligen Benutzergruppen verschiedene Dinge tun können.
    Sowohl die Struktur des ganzen als auch die Abfrage der Rechte bereitet mir Probleme und alle "Lösungen" die ich so ausarbeite stellen mich nicht zufrieden.

    Das Problem muss ja bereits existieren und x-mal gelöst worden sein.

    david

    I like Toast!

  • Ich vermute mal, du hast eine Datenbank und eine Benutzertabelle dahinter.

    Jetzt gibt es eine Vielzahl von Möglichkeiten.

    Feld in Benutzertabelle:
    es gibt z.B. 5 Rechte und man benötigt je nach Seite zumindest Recht X um diese betreten zu dürfen. Dh. du legst in der Usertabelle ein Feld Recht an und schreibst dort eine Zahl von 1-5 rein, bei jeder Seite rufst du am Anfang eine Funktion auf, der du das benötigte Recht übergibst und prüfst ob der aktuelle Benutzer dieses hat.

    Gruppentabelle:
    Gleiches wie oben, nur bekommt hier der Benutzer eine Gruppe und diese bekommt das Recht.

    Feld in Benutzertabelle und Seitentabelle:
    Wenn man die Rechte nicht hardcoden will, kann man auch eine Seitentabelle erstellen, dort schreibt man dann den Namen der php Datei und das benötigte Recht dazu, Rest wie vorher.

    nicht hierachische Rechte:
    Es gibt eine Rechtetabelle, in der die Rechte definiert werden. Jede Seite kann nun ein Recht haben, ein Recht kann auf mehreren Seiten verwendet werden.
    Ein Benutzer kann nun in mehreren Gruppen sein. Eine Gruppe wiederum kann mehrere Rechte haben.
    Beim Seitenaufruf wird geprüft -> hat eine der Gruppen, in der sich der Benutzer befindet, das Recht auf die Seite zuzugreifen?


    Das wars nur mal ganz grob, falls dich was davon detailliert interessiert, frag nach. Ich verwende eine generelle Login/Rechte Klasse, von der sich dann alle Seiten ableiten. Dadurch wird bei jedem Seitenaufruf das Recht geprüft.

    mfg Thomas

  • Naja, bei mir hat jede Seite Bereiche die unterschiedliche Rechte benötigen.

    Ich will nicht Seitenzugriffe mit Rechten versehen sondern Aktionen. Wie gesagt ich hatte schon ein paar Lösungsansätze aber die sind irgendwie nicht sonderlich vernünftig/sauber/...

    Momentan schau ich mir die PEAR::LiveUser an

    Aber das schaut auch sehr nach einarbeiten aus :)

    http://www.gvngroup.be/doc/LiveUser/index.php

    david

    I like Toast!

  • Hierführ hab ich auch keine optimale Lösung.

    Bei mir gibts halt eine Klasse/Funktion, der man das Recht und den Benutzer übergibt und das dann true/false zurückliefert. Ich teil dann halt immer die Seiten in Funktionsblöcke auf und bevor diese aufgerufen werden, wird eben das Rechte geprüft.
    Ähnlich mach ichs für die Ausgabe bzw. fürs Template, entweder im Template eine Rechteprüfung oder es gibt einzelne Dateien für die unterschiedlichen Rechte, die dann zusammengefügt werden.

    mfg Thomas

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!