Binäres Rechtesystem

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

  • Binäres Rechtesystem

    Hallo Leute,

    ich bin dabei ein binäres Rechtesystem zu entwickeln. Allerdings sprengt es ab einenem gewissen maß an Rechten den Rahmen.

    Kurz zur Erklärung:
    Ich habe eine Mysql Tabelle mit den Rechten wobei eine Spalte die zweierpotenzen enthällt, woraus ich nacher das dezimale berechne um es dann in an die Gruppen des Systems zu binden.

    Bsp:
    Default 0 - Gast Recht entspricht 2^0
    Login 1 - Gast darf zum User werden 2^1
    Newssystem - 2^3 - 2^9
    Ein Newsadmin bekommt also in der Gruppe das Recht 1020 dec.

    Jetzt habe ich aber über 60 Rechte über die Seite verteilt, was dann aber
    enorme dezimale Zahlen in den Gruppen zu folge hat. Somit hat die Gruppe Admin dann nachher 1152921504606846975 als Recht. Und das wollte ich eigentlich verhindern.

    Habt ihr Ideen wie man es einfacher machen kann ? Ich finde diese Struktur zumindest sehr passend und sie ist einfach darzustellen, allerdings nur bis zu einer gewissen grösse.

  • #2
    Re: Binäres Rechtesystem

    Wenn ich ehrlich sein soll, sind Zahlen in diesen Fällen scheiße!
    Wenn du den PHP-Code schreibst, und dann willst du ein Recht verteilen, musst du das ja zuerst ausrechnen, bzw. wenn du wissen willst, welche Zahl das denn grade ist, bzw. was das Recht darstellt, musst du die Wurzel ziehen....

    Da gibt es wesentlich bessere Möglichkeiten, z.b. wurde letztens in einem Thread genannt:
    Rechte-Tabelle:
    id | descr

    User:
    id | right


    vereinfacht gesehen, was dann soviel machte, wie in der Rechte-Tabelle die verfügbaren Rechte eintragen und dann pro Recht, was der User hat einen Eintrag in die untere Tabelle machen.


    Oder das, was ich verwende, eine Tabelle, z.B. so:
    user_id | news_create | news_delete | user_bann

    Und da bekommen dann die User, die ein Recht bekommen sollen einen Eintrag drin, und die Spalte die den Namen hat, von dem Recht, was der User bekommen soll, da kommt dann halt ne 1 oder ein j rein und in die anderen ne 0 oder ein n.

    Dann hast du in PHP den Überblick, in MySQL den Überblick und auch keine Zahlen, die in die Trilliarden (nur schätzungsweise, ich hab die Stellen nicht gezählt *drop*) gehen >_>

    Natürlich kann man die Systeme noch um Gruppen erweitern usw. aber das dient hier ja auch nur als Beispiel ^^

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

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

    Kommentar

    Lädt...
    X