Rechtevergabe bei Klassen etc.

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Rechtevergabe bei Klassen etc.

    Hallo,

    meine Software ist bis jetzt durchweg objektorientiert. In meiner Rechteverwaltung gibt es nun bestimmte Module für die man freigeschaltet werden kann. Nun soll natürlich nicht bei jedem 2. Klick eine Datenbankabfrage gemacht werden ob man für das entsprechende Modul freigeschaltet ist.

    Kann man das Problem eleganter lösen als Sessions zu benutzen, die einmalig gefüllt werden ($_SESSION['modulXY'] = true) und auf diese dann zuzugreifen?

    Hätte gerne so eine Art "Registrierungsklasse", aber in PHP müsste ich die ja ebenfalls bei jedem 2. Klick neu instanziieren ...

  • #2
    was spricht gegen sessions? kannst dir ja eine session-klasse basteln.

    gruß
    peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      was findest du an sessions unelegant? is doch voll ok so...!

      *edit: der schnelle peter...
      **********
      arkos
      **********

      Kommentar


      • #4
        Sessions an sich sind ja ok, nur hab ich mich bisher um "globale Variablen" drücken können. Aber wenn ihr das für professionell haltet dann kann ich die ja ruhigen Gewissens benutzen

        Kommentar


        • #5
          PHP-Code:
          nur hab ich mich bisher um "globale Variablen" drücken können 
          dazu sind superglobale variablen doch da, siehe $_POST.

          gruß
          peter
          Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
          Meine Seite

          Kommentar


          • #6
            Original geschrieben von Paranoia dann kann ich die ja ruhigen Gewissens benutzen [/B]
            jepp, kannste...
            **********
            arkos
            **********

            Kommentar


            • #7
              Wie Kropff schon schrieb, kannst du ja die Session-Funktionalität in eine eigene Klasse kapseln ... das ist dann "sauber" "genug"

              Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

              bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
              Wie man Fragen richtig stellt

              Kommentar


              • #8
                Ich lese Modulrechte (die sich relativ unterschiedlich gestalten können), bei Bedarf ein und halte sie dann in der Session vor. So wird die Datenbank beim ersten mal bemüht, dannach nicht mehr. Es sei denn, deine Sessionverwaltung ist Datenbankbasiert
                [FONT="Helvetica"]twitter.com/unset[/FONT]

                Shitstorm Podcast – Wöchentliches Auskotzen

                Kommentar


                • #9
                  Das Cachen der Rechte ist natürlich nur so lange sinnvoll, wie niemand Änderungen in der Datenbank vornimmt!

                  Kommentar


                  • #10
                    Original geschrieben von PHP-Desaster
                    Das Cachen der Rechte ist natürlich nur so lange sinnvoll, wie niemand Änderungen in der Datenbank vornimmt!
                    Richtig. Allerdings ist es stark fallabhängig, wie wichtig einem die Aktualität der vorliegenden Daten (in diesem Fall Benutzerrechte) ist.

                    Ansonsten: Man könnte auch eine Art Dirty-Flag setzen. Sicherlich wird man bei "jedem Klick" den Benutzer auf integrität prüfen. Wenn man nun bei einer Rechteänderung dieses Dirtyflag setzt, dieses beim initalisieren der Session prüft, könnte man, gesetz dem Fall, dass sich seit dem Start der Session und dem aktuellen Zeitpunkt etwas getan hat, die Rechte sozusagen flushen.
                    Zuletzt geändert von unset; 21.11.2007, 08:36.
                    [FONT="Helvetica"]twitter.com/unset[/FONT]

                    Shitstorm Podcast – Wöchentliches Auskotzen

                    Kommentar


                    • #11
                      Ja gut dann mach ich das so, das mit der Aktualität der Daten ist denke ich nciht so das Problem. Kann man ja mitteilen dass die Freischaltung neuer Module erst nach einem erneuten Login vorhanden ist

                      Ich habe die Sessions in einer Klasse gekapselt, zumindest wenn es so gemeint ist, dass ich in einer Funktion die Sessionvariablen nach der DB-Abfrage setze und in einer anderen Funktion den Wert einer Sessionvariablen abfrage ...

                      Kommentar

                      Lädt...
                      X