Ankündigung

Einklappen
Keine Ankündigung bisher.

Zugriffsrechte, Rollen etc.

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

  • Zugriffsrechte, Rollen etc.

    Hallo,

    ich benötige ein flexibles Zugriffsrechte-System und höre immer etwas von "role based access control". Ich hab auch hier schon etwas gesucht und das hier gefunden:
    Module - Usermanagement :: Adventure PHP Framework (APF)

    Meine Frage ist, wie realisiert man so ein Rechtesystem, wie z.B. von Facebook? Dort kann man Informationen nur für Freunde freigeben, für die Allgemeinheit, oder auch nur für einzelne Benutzer. Werden dann wirklich alle 500 Millionen Mitglieder in die "Für alle sichtbar" Gruppe geschaufelt, oder u.U. 1000 Personen in die Freundeskreis-Gruppe?

    Zusätlich hat jede Applikation frei-definierbare Spezial-Rechte, die über Read/Write bzw. Ja/Nein hinausgehen und für jeden Eintrag kann ich wieder bestimmen, ob es jeder darf, nur die Freunde, nur ganz spezielle Leute, Personen auf dem Netzwerk X, dem ich beigetreten bin usw.

    Danke,
    root66


  • #2
    Solche Rechte wie XYZ darf ABC sehen, wird aber IMHO nicht mit Rollen abgebildet, sondern mit vererbbaren Rechten. Rollen sind für die Rechte auf Funktionen bzw. Aktionen gedacht.
    Refining Linux: “Performing Push Backups – Part 1: rdiff-backup

    Kommentar


    • #3
      Hallo root66,

      an sich must du dir nur mal das UML und den zugehörigen Text durchlesen, dann sollte das Konzept klar sein. Die Idee ist, Permissions - die einem Benutzer über seine Rolle zugewiesen sind - Funktionalitäten anbietet oder eben nicht. Sichtbarkeits-Berechtigungen kannst du auf Gruppen-Ebene abbilden.

      Meine Frage ist, wie realisiert man so ein Rechtesystem, wie z.B. von Facebook? Dort kann man Informationen nur für Freunde freigeben, für die Allgemeinheit, oder auch nur für einzelne Benutzer. Werden dann wirklich alle 500 Millionen Mitglieder in die "Für alle sichtbar" Gruppe geschaufelt, oder u.U. 1000 Personen in die Freundeskreis-Gruppe?
      Diesen Anwendungsfall würde ich nicht über ein generisches Usermanagement (mit Rollen, Permissions, ...), sondern konkret lösen. Grund: die Beziehungen zwischen den Benutzern definieren quasi gegenseitige Berechtigungen. Das über Permissions und Rollen abzubilden schafft vermutlich einen zu großen Overhead. Wichtig für das Design ist deshalb, darüber nachzudenken, welche Beziehungen benötigt werden. Meiner Ansicht nach sind das einfach beliebig viele Beziehungen, die auf komplexe Benutzer-Attribute zeigen und dadurch definieren, dass du diese sehen darfst. Man könnte zur Vereinfachung noch eine allgemeine Gruppe einführen, die alle sichtbaren Attribute eines Benutzers per default "kennt", da sie für jederman sichtbar sind.

      Zusätlich hat jede Applikation frei-definierbare Spezial-Rechte, die über Read/Write bzw. Ja/Nein hinausgehen und für jeden Eintrag kann ich wieder bestimmen, ob es jeder darf, nur die Freunde, nur ganz spezielle Leute, Personen auf dem Netzwerk X, dem ich beigetreten bin usw.
      Hierzu müsste man wahrschreinlich dann doch auf ein generisches Rollen-/Rechte-Konzept gehen, denn wenn pro Beitrag nochmal auswählbar sein soll, welche Sichtbarkeit das Objekt nun besitzt und welche Funktionen darauf ausgeführt werden können, wirst du nicht umhin kommen das von dir bereits genannte Konzept des APF zu adaptieren.

      Hast du mal versucht, die Anforderungen niederzuschreiben? Das würde ich an deiner Stelle schnellstens tun, dann kannst du mal ein Gedankenspiel mit dem UML starten und mit einem Blatt Papier durchdenken, wie das laufen könnte. Sobald du ein bischen mehr aufgeschrieben hast, können wir gerne nochmal darüber diskutieren.
      Viele Grüße,
      Dr.E.

      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      1. Think about software design before you start to write code!
      2. Discuss and review it together with experts!
      3. Choose good tools (-> Adventure PHP Framework (APF))!
      4. Write clean and reusable software only!
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

      Kommentar

      Lädt...
      X