Rechtevergabe bei Klassen etc.

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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

    Comment


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

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

      Comment


      • #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

        Comment


        • #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

          Comment


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

            Comment


            • #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

              Comment


              • #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

                Comment


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

                  Comment


                  • #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.
                    Last edited by unset; 21-11-2007, 07:36.
                    [FONT="Helvetica"]twitter.com/unset[/FONT]

                    Shitstorm Podcast – Wöchentliches Auskotzen

                    Comment


                    • #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 ...

                      Comment

                      Working...
                      X