Benutzer- und Gruppenrechte mit dem Usermanagementmodul

Das Forum soll der Ablage von Lösungen für immer wieder auftauchende Problemstellungen dienen. // This forum contains solutions to problems that frequently occur.
Antworten
Megger
Beiträge: 1233
Registriert: 04.11.2008, 10:57:37

Benutzer- und Gruppenrechte mit dem Usermanagementmodul

Beitrag von Megger » 02.09.2009, 14:58:11

Hi

Ich suche nach einem Beispiel, wie man die Benutzer- und Gruppenrechte verwaltet. Ich will mit dem Usermanagement Modul verschiedene Benutzer und Gruppen abbilden.

Rechte:
Lesen
Schreiben
Löschen

Benutzer:
Gast A
Gast B
Gast C
Benutzer A
Benutzer B
Benutzer C
Benutzer D

Gruppen:
Besucher
Benutzer
Moderatoren
Admin

Beispiel:
Gast A, B und C sind der Gruppe Besucher zugeordnet, diese Gruppe kann nur Lesen, deswegen können auch Gast A, B und C nur Lesen.

Benutzer A, B und C sind der Gruppe Benutzer zugeordnet, diese Gruppe kann Lesen und Schreiben, deswegen können Benutzer A, B und C auch Lesen und Schreiben.

Benutzer C kann zusätzlich als Benutzerrecht noch Löschen.

Benutzer D ist der Gruppe Moderator zugeordnet, diese Gruppe kann Lesen, Schreiben und Löschen, deswegen kann Benutzer D auch Lesen, Schreiben und Löschen.

Kann mir da wer etwas zeigen, wie man das ganze im Usermanagementmodul des APFs abbildet?

Schön wäre es auch noch, wenn die Gruppen voneinander erben, d.h. die Gruppe Benutzer kann alles was die Gruppe Besucher kann und zusätzlich noch Schreiben.
Tutorial: Browsergame mit dem APF (Die ersten Parts handeln von Installation und Inbetriebnahme des APFs, deswegen sicherlich auch für alle Nicht-Browsergame-Programmierer interessant)

APF-Version
  • Entwicklung: 2.0
  • Produktiv: 1.15

Benutzeravatar
dr.e.
Administrator
Beiträge: 4525
Registriert: 04.11.2007, 16:13:53

Re: Benutzer- und Gruppenrechte mit dem Usermanagementmodul

Beitrag von dr.e. » 02.09.2009, 21:59:47

Hallo Megger,

Gast A, B und C sind der Gruppe Besucher zugeordnet, diese Gruppe kann nur Lesen, deswegen können auch Gast A, B und C nur Lesen.

Hierbei würde die Gruppe "Besucher" eine Assoziation auf die relevanten Objekte besitzen, die Benutzer "Gast A", "Gast B" und "Gast C" bekommen jeweils eine entsprechende Rolle, die die Berechtigung "Lesen" auf die Benutzer abbildet.

Benutzer A, B und C sind der Gruppe Benutzer zugeordnet, diese Gruppe kann Lesen und Schreiben, deswegen können Benutzer A, B und C auch Lesen und Schreiben.

Auch hier: die Gruppe "Benutzer" prägt Assoziations-Beziehungen zu den relevanten Objekten aus und die Benutzer haben eine Rolle, die Lesen und Schreiben erlaubt.

Benutzer C kann zusätzlich als Benutzerrecht noch Löschen.

Hier ist die Rolle dann einfach erweitert, bzw. er hat gegenüber "Benutzer A" und "Benutzer B" noch eine weitere Rolle (z.B. Senior-Editor).

Benutzer D ist der Gruppe Moderator zugeordnet, diese Gruppe kann Lesen, Schreiben und Löschen, deswegen kann Benutzer D auch Lesen, Schreiben und Löschen.

Gruppen (und implizit Benutzer) sind eigentlich für die Regelung der Sichtbarkeit zuständig. Über eine definierte Assoziation zum Ziel-Objekt (z.B. eine CMS-Webseite) wird geregelt, dass ein Benutzer dieses sehen darf. Welche Aktionen er mit diesem Objekt vornehmen darf, regeln die Permissions, die einem Benutzer über eine Rolle zugehen.

Schön wäre es auch noch, wenn die Gruppen voneinander erben, d.h. die Gruppe Benutzer kann alles was die Gruppe Besucher kann und zusätzlich noch Schreiben.

Da wie oben angesprochen Gruppen nicht für die Verwaltung von Rechten zuständig ist, muss das auch nicht sein. Dieser "Vererbungsmechanismus" ist dagegen bei Rollen bereits über die PermissionSets vorhanden. Hier kannst du mehrere PermissionSets anlegen und diese in unterschiedlichen Rollen wiederverwenden. So kann beispielsweise eine Rolle "Senior-Editor" in einem CMS einfach durch hinzufügen eines weiteren Sets passieren ohne die Sets der "Junior-Editor"-Rolle nochmals neu definieren zu müssen.

Ich hoffe, das hilft dir weiter! :geek:
Viele Grüße,
Christian

Megger
Beiträge: 1233
Registriert: 04.11.2008, 10:57:37

Re: Benutzer- und Gruppenrechte mit dem Usermanagementmodul

Beitrag von Megger » 02.09.2009, 22:05:26

Das heißt, wenn jetzt ein weiterer Benutzer hinzukommt, kann ich ihn nicht einfach einer Gruppe zuordnen, sondern muss dem Benutzer die verschiedenen Rechte geben?

Edit:
Ich habe es mir nochmal durchgelesen. Die Gruppen wie ich sie definiere sind im APF Rollen. Wenn nun ein Gast XY hinzukommt, dann gebe ich ihm einfach die Rolle "Besucher" und schon hat er die benötigten Rechte. Sehe ich das richtig?
Tutorial: Browsergame mit dem APF (Die ersten Parts handeln von Installation und Inbetriebnahme des APFs, deswegen sicherlich auch für alle Nicht-Browsergame-Programmierer interessant)

APF-Version
  • Entwicklung: 2.0
  • Produktiv: 1.15

Benutzeravatar
dr.e.
Administrator
Beiträge: 4525
Registriert: 04.11.2007, 16:13:53

Re: Benutzer- und Gruppenrechte mit dem Usermanagementmodul

Beitrag von dr.e. » 03.09.2009, 09:43:32

Hi Megger,

Ich habe es mir nochmal durchgelesen. Die Gruppen wie ich sie definiere sind im APF Rollen. Wenn nun ein Gast XY hinzukommt, dann gebe ich ihm einfach die Rolle "Besucher" und schon hat er die benötigten Rechte. Sehe ich das richtig?

Exakt so. Damit er die gewünschten Inhalte sehen kann ordnest du ihm eine Gruppe zu, die die notwendigen Beziehungen zu den Ziel-Objekten besitzt.
Viele Grüße,
Christian

Megger
Beiträge: 1233
Registriert: 04.11.2008, 10:57:37

Re: Benutzer- und Gruppenrechte mit dem Usermanagementmodul

Beitrag von Megger » 03.09.2009, 13:04:20

Gut dann werde ich mir das ganze mal genauer anschauen und damit etwas umsetzen um ein bisschen Erfahrung zu sammeln.
Tutorial: Browsergame mit dem APF (Die ersten Parts handeln von Installation und Inbetriebnahme des APFs, deswegen sicherlich auch für alle Nicht-Browsergame-Programmierer interessant)

APF-Version
  • Entwicklung: 2.0
  • Produktiv: 1.15

Benutzeravatar
BazzRah
Beiträge: 12
Registriert: 13.06.2009, 17:10:08

Re: Benutzer- und Gruppenrechte mit dem Usermanagementmodul

Beitrag von BazzRah » 13.09.2009, 15:58:47

Lässt sich denn in irgendeiner Weise eine Art Hierarchie in den Gruppen darstellen? Ich stelle mir folgendes Szenario vor:
Als Beispiel ein einfaches Forum:
Gäste dürfen einige Kategorien sehen, andere nicht.
Angemeldete Benutzer dürfen einige Themen mehr sehen.
Moderatoren haben nun Einsicht in eine eigene Kategorie, zwecks Verständigung und Abklärung.
Der/die Admin(s) haben Einsicht in das Backend.

Kann ich jetzt sagen, wenn du in den Mod-Thread willst (d.h. der Link dahin wird in der Übersicht angezeigt), musst du mindestens der Gruppe "Moderatoren" angehören?? Ich fände es sehr arbeitsaufwendig für jede Seite eine Liste der erlaubten Gruppen zu erarbeiten...

Benutzeravatar
dr.e.
Administrator
Beiträge: 4525
Registriert: 04.11.2007, 16:13:53

Re: Benutzer- und Gruppenrechte mit dem Usermanagementmodul

Beitrag von dr.e. » 13.09.2009, 16:06:51

Hi BazzRah,

du solltest auch in diesem Fall mit Rollen Arbeiten. Wenn der Nutzer die entsprechende Berechtigung (z.B. "Admin-Link anzeigen") hat, dann sollte der Link angezeigt werden, ansonsten nicht. Gruppen sind nur für die Regelung der Sichtbarkeit von Objekten (z.B. einem Thread) da, nicht dafür, was der Nutzer damit anstellen darf (=Funktionen)!
Viele Grüße,
Christian

Benutzeravatar
Screeze
Beiträge: 1920
Registriert: 05.08.2009, 09:49:04
Kontaktdaten:

Re: Benutzer- und Gruppenrechte mit dem Usermanagementmodul

Beitrag von Screeze » 13.09.2009, 16:07:58

hmm und was passiert wenn ein "gast" den link KENNT, der eigentlich nur für einen "moderator" sichtbar ist?

Benutzeravatar
BazzRah
Beiträge: 12
Registriert: 13.06.2009, 17:10:08

Re: Benutzer- und Gruppenrechte mit dem Usermanagementmodul

Beitrag von BazzRah » 13.09.2009, 16:11:05

So in etwa wollte ich das ausdrücken... danke Screeze... will auf der Seite also prüfen bist du, der hierhin will, auch mindestens in der benötigten Gruppe.

Die Rollen werden dann nochmal für die Unterteilung in Leserecht/Schreibrecht etc. benötigt, das hab ich schon verstanden.

Benutzeravatar
dr.e.
Administrator
Beiträge: 4525
Registriert: 04.11.2007, 16:13:53

Re: Benutzer- und Gruppenrechte mit dem Usermanagementmodul

Beitrag von dr.e. » 13.09.2009, 16:25:03

Hallo ihr beiden,

wenn es "nur" um die Anzeige bzw. Nicht-Anzeige eines Links (der ja eine Funktion anbietet) geht, reicht es, eine Permission zu definieren, die "Link anzeigen" heißt und einem Admin über seine Rolle zugewiesen ist. Hier braucht es keine Sichtbarkeit, weil (eigentlich) kein Objekt im Spiel ist.
Viele Grüße,
Christian

Benutzeravatar
BazzRah
Beiträge: 12
Registriert: 13.06.2009, 17:10:08

Re: Benutzer- und Gruppenrechte mit dem Usermanagementmodul

Beitrag von BazzRah » 13.09.2009, 16:32:38

Den Ansatz versteh ich. Aber wie gesagt, jemand kennt den Link und gibt ihn manuell ein. Dann wird die Seite einfach geladen (auch wenn man dort dank fehlender Permissions [hoffentlich] nichts machen kann). Würde jetzt am Anfang der Seite eine Abfrage starten, ob er in der Gruppe ist, wenn nicht, gibt's ne Fehlermeldung. Wenn du sagst, ich brauche dafür keine Gruppen, sondern Rollen, dann brauch ich doch überhaupt keine Gruppen mehr?

Benutzeravatar
dr.e.
Administrator
Beiträge: 4525
Registriert: 04.11.2007, 16:13:53

Re: Benutzer- und Gruppenrechte mit dem Usermanagementmodul

Beitrag von dr.e. » 13.09.2009, 17:51:49

Hi,

das Thema Sicherheit würde ich mit einer Front-Controller-Action abwickeln, genau dort, wo du deinen Benutzer auch wieder aus der Session holst und lokal in der Anwendung zur Verfügung stellst. Ist der Benutzer nicht eingeloggt und ruft eine Funktion auf (-> Permissions), die ein Gast (=Rolle) nicht darf, so kannst du ja eine entsprechende Fehler-Seite ausgeben.

Wenn du sagst, ich brauche dafür keine Gruppen, sondern Rollen, dann brauch ich doch überhaupt keine Gruppen mehr?

Klar. Über Gruppen, kannst du Sichtbarkeits-Beziehungen zu einem Ziel-Objekt bündeln und musst nicht für jeden Benutzer eine Beziehung anlegen. Nehmen wir das Beispiel CMS. Hier prägt ein Benutzer zu einer Gruppe A eine Beziehung aus und kann damit die Inhalte, die der Gruppe A (über eine weitere Beziehung) zugewiesen sind, "sehen". Damit kannst du z.B. realisieren, dass eine Gruppe von Redakteuren nur einen bestimmten Bereich der Webseite bearbeiten darf. Ein Redakteur dieser Gruppe hat zwat die Rolle, die ihm das Bearbeiten von CMS-Inhalten erlaubt, da er aber über seine Gruppe nur die Inhalte aus einem Bereich sieht, wird ihm der Zugang zu Inhalten anderer Bereiche verwehrt.
Viele Grüße,
Christian

Benutzeravatar
BazzRah
Beiträge: 12
Registriert: 13.06.2009, 17:10:08

Re: Benutzer- und Gruppenrechte mit dem Usermanagementmodul

Beitrag von BazzRah » 15.09.2009, 14:47:11

Jetzt verstehe ich was du meinst. Ich war bisher der Meinung, dass die Rollen jeweils nur eine Unterteilung der Gruppen darstellen würden.. nicht unbedingt im Sinne der Programmierung, eher im Sinne der Logik. Dass würde im Prinzip bedeuten, dass der umgekehrte Fall richtig ist. Die Gruppen teilen die Rollen ein??

Benutzeravatar
dr.e.
Administrator
Beiträge: 4525
Registriert: 04.11.2007, 16:13:53

Re: Benutzer- und Gruppenrechte mit dem Usermanagementmodul

Beitrag von dr.e. » 15.09.2009, 15:21:22

Hi,

das ist nicht so ganz einfach, das sprachlich zusammen zu ziehen, denn die Rollen betreffen Funktionen, nicht Berechtigungen. Wenn du so willst, "verfeinert" die Rolle, die Möglichkeiten, die dem Benutzer an Hand seiner Gruppen gegeben sind. :)
Viele Grüße,
Christian

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast