Wie setze ich Rechte um?

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

  • #46
    @TBT
    Bei mir soll es aber anders sein.
    Da ich für Teilbereiche nur den Lese-Status brauche. Das heisst:
    gast, user_un und user_reg sollen in einen Froum nur lesen können und mod und admin sollen dort nur schreiben und lesen können.
    Daher auch die Tabelle forum_permission.
    *winks*
    Gilbert
    ------------------------------------------------
    Hilfe für eine Vielzahl von Problemen!!!
    http://www.1st-rootserver.de/

    Kommentar


    • #47
      ich habe Tabelle

      Gruppen
      ======
      group_id
      group_name
      ...


      Foren
      ======
      forum_id
      group_name
      ...

      Rechte
      ======
      group_id
      forum_id
      recht

      dh. da steht zB. drin (in wirklich nur die IDs)

      Administrator | Testforum | 8185 (volle Rechte)
      Gast | Testforum | 1 (nur lesen)
      User |Testforum | 511 (lesen/Thread starten/im Thread antworten)

      und so weiter, für jede Gruppe, jedes Forum
      die Nulldatensätze (mit Recht 0) werden beim
      Anlegen von Gruppen (man könnte ja mal die "DAUs" oder was weiß ich anlegen) oder Foren automatisch eingefügt
      TBT

      Die zwei wichtigsten Regeln für eine berufliche Karriere:
      1. Verrate niemals alles was du weißt!


      PHP 2 AllPatrizier II Browsergame

      Kommentar


      • #48
        Original geschrieben von Wotan
        @TBT
        Bei mir soll es aber anders sein.
        Da ich für Teilbereiche nur den Lese-Status brauche. Das heisst:
        gast, user_un und user_reg sollen in einen Froum nur lesen können und mod und admin sollen dort nur schreiben und lesen können.
        Daher auch die Tabelle forum_permission.
        was mach ich denn ?

        Zur Zeit:

        - Gast nur lesen in allen Foren (2 darf er garnicht sehen)
        - Benutzer lesen / starten / antworten in 3 Foren (Kategorie "Alphatest") + lesen der 2 Foren "Boardnews" und "Feature") + 2 darf er nicht sehen

        Admin hat volle Rechte auf allen Foren
        inklusive die für andere Benutzer nicht sichtbaren Foren in der Kategorie "System"

        "Mülleimer" und "Admintalk"

        PS: der Mülleimer ist wirklich das was der Name sagt, funktioniert wie jeder Windowsmülleimer
        TBT

        Die zwei wichtigsten Regeln für eine berufliche Karriere:
        1. Verrate niemals alles was du weißt!


        PHP 2 AllPatrizier II Browsergame

        Kommentar


        • #49
          ok, verstanden, wie kann man eigentlich damit hinkreigen, das zumbeispiel ein einzelner user nur in diesem forum alles rechte hat, und sonst überall anders gar nichts ?! mit 8185 hast man ja überall rechte, aber das will ich ja nicht.. ?!
          meine Projekte bestaunen: http://www.kleiza.de

          Kommentar


          • #50
            bei mir gelten die Rechte jeweils nur für

            eine Gruppe in einem Forum,
            das Recht der selben Gruppe in einem anderen Forum
            ist ein neuer Eintrag in der DB, und das kann ganz anders sein

            willst du das für einzelne User festlegen,
            brauchste entweder
            - dieses Rechtesystem auf Userebene und die Gruppe ist egal
            oder
            - die Userrechte sind optional (bei mir) und überschreiben die Gruppenrechte
            TBT

            Die zwei wichtigsten Regeln für eine berufliche Karriere:
            1. Verrate niemals alles was du weißt!


            PHP 2 AllPatrizier II Browsergame

            Kommentar


            • #51
              ok, hast du die bedeutung der binätziffern in eine tabelle angelegt ? und wenn ja, wie realisert du das dann mit der abfrage ?
              meine Projekte bestaunen: http://www.kleiza.de

              Kommentar


              • #52
                das Recht "lesen" ist Grundvoraussetzung für das sehen und betreten eines Forums.
                Dieses Recht ist die 1. Eins (von rechts nach links!)

                ermittelt werden kann das mit der modulo Funktion, die anderen Rechte mache ich dann erst per PHP

                select ... from ... where MOD(recht,2)=1

                PS: inzwischen hat sich das auch wieder nen bissel geändert, da Postqre-SQL die modulo Funktion nicht unterstützt
                TBT

                Die zwei wichtigsten Regeln für eine berufliche Karriere:
                1. Verrate niemals alles was du weißt!


                PHP 2 AllPatrizier II Browsergame

                Kommentar


                • #53
                  Hey TBT,

                  können wir los legen?
                  *winks*
                  Gilbert
                  ------------------------------------------------
                  Hilfe für eine Vielzahl von Problemen!!!
                  http://www.1st-rootserver.de/

                  Kommentar


                  • #54
                    na dann leg mal los,

                    hab dir ja hier im Thread beschrieben, wie die Tabellen aussehen müssen, und wie du die 1. Eins abfragen kannst.

                    Wo liegt jetzt noch das Problem ?
                    TBT

                    Die zwei wichtigsten Regeln für eine berufliche Karriere:
                    1. Verrate niemals alles was du weißt!


                    PHP 2 AllPatrizier II Browsergame

                    Kommentar


                    • #55
                      Kennst du das symthom "Denksperre". Daran happerts momentan.
                      Ich glaube ich habe mich verrannt und muss jetzt erstmal langsam wieder umdenken.

                      Das ist der Problem-Abschnitt:
                      PHP-Code:
                      // Forum prüfen ob es Aktiv ist
                      if($activ == Ja)
                                     {
                                     
                      // Forum prüfen ob es User-Rechte braucht. Hier ist glaube ich noch ein Denkfehler. 
                                     // hier muss jetzt eine Zugangskontrolle rein. Entsprechend der Tabelle forum_permission
                                     
                      if($auth == Ja && $gruppe == ???) // forum_darf. Aus forum_darf kommt ja nur 0 oder 1. In $gruppe steht aber user_reg. Das kriege ich nicht hin.
                                                     
                      {
                                                     include_once(
                      "includes/forum.inc.php");// Forumdarstellung
                                                     
                      }
                                     else
                                                     {
                                                     
                      // Falsche User-Gruppe
                                                     
                      include_once("includes/recht.inc.php");
                                                    }
                                     }
                      else
                                     {
                                     
                      // Forum geschlossen
                                     
                      include_once("includes/close.php");
                                     } 
                      Wo muss ich die Weiterleitung machen wenn $auth == Nein ist
                      Zuletzt geändert von Wotan; 02.10.2002, 09:32.
                      *winks*
                      Gilbert
                      ------------------------------------------------
                      Hilfe für eine Vielzahl von Problemen!!!
                      http://www.1st-rootserver.de/

                      Kommentar


                      • #56
                        NIEMALS die Gruppe zum prüfen nehmen,
                        damit kannste dieser Gruppe irgendwelche Rechte
                        nicht mehr wegnehmen.

                        Die Gruppenzuordnung
                        admin = 1
                        user = 2
                        mod = 3
                        ...

                        sind nur dazu da, die Rechte aus der DB zu holen.

                        $sql="SELECT recht FROM rechtetabelle WHERE group_id=".$meine_user_gruppe." and forum_id=".$aktuelles_forum;
                        TBT

                        Die zwei wichtigsten Regeln für eine berufliche Karriere:
                        1. Verrate niemals alles was du weißt!


                        PHP 2 AllPatrizier II Browsergame

                        Kommentar


                        • #57
                          in der forum_permission habe ich folgende Einträge:

                          forum_id => 1 (1 => Out of Order)
                          group_id => 3 (3 => user_reg)

                          Die Verbindung zwischen group_id (3) und user_group (user_reg) steht in der Tabelle forum_usergroup

                          user_group => 3
                          user_id => user_reg

                          Wie bekomme ich das jetzt hin?
                          Oder soll ich jetzt in der forum_permission die group_id auf user_reg stellen?
                          *winks*
                          Gilbert
                          ------------------------------------------------
                          Hilfe für eine Vielzahl von Problemen!!!
                          http://www.1st-rootserver.de/

                          Kommentar


                          • #58
                            ok ganz einfach:

                            mach eine Tabelle

                            forum_id
                            group_d
                            can_read
                            can_write
                            can_anser
                            can_edit
                            can_delete
                            ...

                            und dort trägst du für JEDE Gruppe JEDES Forum die Rechte ein
                            und das fragst du dann ab
                            TBT

                            Die zwei wichtigsten Regeln für eine berufliche Karriere:
                            1. Verrate niemals alles was du weißt!


                            PHP 2 AllPatrizier II Browsergame

                            Kommentar


                            • #59
                              Hab es mit einigen änderungen an meiner Datenbank scho hin bekommen.

                              Kannst es in 5 min. online Testen.
                              *winks*
                              Gilbert
                              ------------------------------------------------
                              Hilfe für eine Vielzahl von Problemen!!!
                              http://www.1st-rootserver.de/

                              Kommentar


                              • #60
                                Hallo,

                                ich arbeite auch gerade an einer lösung für ein user right managment.

                                Allerdigns nur in der theorie erstmal.

                                Ich glaube aus dem verständnis eurer conversation verstanden zu haben, dass ich einen anderen ansatz habe.

                                Ich generiere meine seiten dynamisch. Ich schreibe in meine db für jede existierende seite, welche userrechte für die seite vergeben sind, d.h. welcher userstatus diese seiten sehen darf.

                                Eine lange if abfrage spare ich mir durch 2 faktoren. Links auf seiten, die ein user nicht ausführen darf, weil er dazu keine rechte hat, erscheinen nicht auf den seiten, die er lädt. Dies funktioniert, weil ich die seiten modular aufbaue (z.b. in einem forum die navigation als ein modul - antworten erscheint dann gar nicht erst).

                                Zum anderen generiere ich aus den userrechten (z.b. admin mit folgenden rechten - abcd oder admin mit den rechten acd) einen eindeutigen schlüssel für die rechte auf einer seite. Dieser steht auch in der db zur verifizierung.

                                Dadurch muss ich nur noch eine if abfrage pro seite machen und der schlüssel enthält das muster einer hirarchie, die im weiteren sinne vererbbar ist und damit auch verschiedene administratoren stati zulässt.

                                Ein theoretisches bsp.:

                                User admin

                                Seitenschlüssel
                                1 Alle seiten - also 123
                                2 Alle seiten ausser adminseiten klasse 1 - also 23
                                3 Alle seiten ausser adminseiten klasse 1 und 2 - also 3

                                Rechteschlüssel
                                ABC vollen zugriff lesen volles schreiben
                                AB voller zugriff lesen, kein schreiben
                                A kein zugriff

                                Jetzt gebe ich den seiten in der db schlüssel

                                Z.B. hauptadminseite -->123ABC
                                Z.B. teilforum adminseite -->23AB
                                Z.B. meine beiträge im forum --> 3ABC
                                Z.B. Gast --> 3AB

                                Nun muss ich nur noch in einer if abfrage auslesen, ób der schlüssel des logins in der session, im cookie oder wo auch immer mitgenommen,

                                auf den schlüssel der seite passt. wenn nicht, dann wird die seite nicht verlinkt, oder eine meldung erscheint, sie haben keine rechte diese seite aufzurufen ...

                                Ich hoffe ich habe keinen denkfehler produziert. Jedenfalls kann ich so

                                Rechte vererben in der hirarchie von unten nach oben und brauche nicht mehr für jeden usertypen alle bedingugen abfragen

                                Kommentar

                                Lädt...
                                X