Vergabe von mehreren Rollen an User

am 28.05.2014 - 14:16 Uhr in
Hi,
sagt mal kennt jemand für fiolgendes Szenario eine Lösungsmöglichkeit:
1. es existieren im Grunde zwei Gruppen von Benutzern: "Kunden" und "interne Mitarbeiter"
den Internen Mitarbeitern soll immer gleich ein ganzer Schwung an Rollen zugewiesen werden (ca. 20-30)
hier werden eher selten nur noch einzelne Rollen vergeben
2. bei den Kunden können immer sofort 3 Rollen bei Anlage eines Accounts bzw. auch im Nachhinein zugeordnet werden
nachträglich werden dann nur noch einzelne Rollen vergeben
Ich suche nun nach einer Möglichkeit die Massenvergabe von Rollen zu realisieren. Diese Vergabe kann zum Einen bei Accountanlage passieren, sollte aber auch im Nachhinein möglich sein.
Da der Zugriff auf den Content über ContentAccess gesteuert wird, gibt es immer wieder Bedarf auch gleich mehrere Rollen zu vergeben oder auch wegzunehmen.
Mich wundert es, dass es nicht eine Art Sammelrolle im Drupal gibt, in die man Einzelrollen stecken kann - damit bräuchte man in meinem Falle nur eine einzige Rolle vergeben und fertig wäre man ...
TDI
- Anmelden oder Registrieren um Kommentare zu schreiben
wie du eine Rolle definierst
am 28.05.2014 - 14:31 Uhr
ist deine Sache
insofern kannst du eine beliebige Rechtekonstelleation vergeben.
Bei der Definition muss man beachten, dass Rechte nur erweitert, aber niemals reduziert werden können, und alle User zunächst die Rolle "Authenticated User" erben.
Bei einem komplexen Gebilde, werden die Rollen entsprechend umfangreich.
Gerade weil sich nicht kaskadiert werden können, bleibt es aber (einigermaßen) übersichtlich, was wer kann.
Wichtig ist eigentlich nur, dass der Authenticated User die maximale Einschränkung bekommt.
Hi, danke für die Info, ... aber
am 28.05.2014 - 15:37 Uhr
ich denke ich habe mich nicht so gewählt ausgedrückt ... es geht nicht um die permissions, die in den Rollen verankert werden, also sowas wie "View publish content" oder so ... ich nutze die Rollen als Mittel um Buchseiten mit Zugriffsrechten zu versehen.
Das heisst, dass eine Buchseite eine bestimmte Produktrolle bekommt (die Rolle ist also komplett leer, keine Permissions), die Rolle wird pro Buchseite mit ContentAccess gesetzt.
Damit kann diese Buchseite nur derjenige User sehen, der auch diese Produktrolle besitzt.
Und meistens ist es so, dass die internen MA natürlich fast alles sehen können dürfen und entsprechend viele dieser Rollen zugewiesen bekommen.
Kunden bekommen zwar meistens weniger, aber eben auch manchmal zwei oder drei auf einmal ....
vielleicht ist es jetzt ein wenig deutlicher ...
TDI
Also so ganz leuchtet mir
am 28.05.2014 - 18:07 Uhr
Also so ganz leuchtet mir noch nicht ein, wieso Du das so machst, aber Rollen kannst Du ja z.B. auch mit Rules vergeben... wenn der Nutzer XY angelegt wird oder irgendwas bestimmtes tut, kann eine entsprechende Rule ausgelöst werden und mithilfe einer Aktion "Benutzerrolle hinzufügen" können beliebig viele Rollen hinzugefügt oder entfernt werden.
Aber mir klingt das so, als wenn ACL besser wäre (https://drupal.org/project/acl) - damit kann per Content Access einzelnen Nutzern Zugangsberechtigung per Node gegeben werden... ist vielleicht besser, als für jede Buchseite eine extra Rolle zu erstellen (so habe ich das jetzt verstanden)
ne so mache ich das nicht
am 28.05.2014 - 21:53 Uhr
es gibt ein Handbuch für ein Produkt und dafür wird eine Rolle vergeben, also für jede Buchseite die Rolle A. Das heisst wir haben ca. 40 Produkte, also dafür 40 Handbücher und somit 40 Rollen.
Globale Rollen ungeeignet, vllt. was für Organic Groups
am 28.05.2014 - 23:34 Uhr
Das beschriebene Anwendungs-Szenario würde ich nicht über Rollen lösen. Wenn schon jetzt 40 Produkte jeweils mit einer Rolle versehen werden, dann korrespondieren damit wahrscheinlich auch 40 Nodetypes oder 40 andere individuelle Node-zu-Rolle Verknüpfungen. Das klingt nach einem Konfigurations-Alptraum, vor allem, weil das Risiko immer größer wird, daß Drupal beim Verarbeiten des riesigen (und unübersichtlichen) Rollen-Rechte-Formulars leicht abstürzen kann (Timeout), vor allem wenn auch noch die Anzahl der Rechte ansteigt aufgrund von mehr Modulen. Letzteres lässt sich mit "Faster Permissions" verbessern. Prinzipiell könnte man dafür ein neues Modul schreiben, aber da gibt es sicher auch bessere Wege. Die oben beschriebenen Probleme würden sich noch vergrößern, wenn es mal irgendwann mehr Produkte werden sollen, die Lösung also skalieren muss.
Ad hoc wäre das z.B. auch eine Aufgabe für Organic Groups (OG), bei der je ein Produkt eine Gruppe wird und die Leserechte per Gruppen-Zugehörigkeit gelöst wird. Man könnte das so konfigurieren auch mit ein paar Template-Tricks, daß die Benutzer das nicht wirklich mitbekommen, daß Sie in besagten Gruppen sind. Eine OG-Lösung könnte später auch funktional skalieren, wenn man z.B. mal mehr als nur eine Handbuch-Lese-Funktion pro Produkt möchte und evtl. auch ein Forum, eine Benachrichtigungsfunktion usw. Man z.B. könnte auch einen Premium-Support für Kunden der Produkte organisieren. Denn OG ermöglicht eine separate Rollen-Rechte-Zuordnung pro Gruppe. Und auch OG ist komplett mit Rules steuerbar.
Hier geht es offenbar nicht um Rollen
am 29.05.2014 - 06:20 Uhr
sondern um individuelle Einzelzugriffsrechte.
Das ist ein ganz anderes Konzept, das auf lange Sicht zu einem großen Verwaltungswust werden muss, und nur sehr schwer handlebar ist.
Hier ist wirklich angezeigt, sich nochmals Gedanken zum Konzept zu machen.
Ich denke auch, das klingt
am 29.05.2014 - 09:56 Uhr
Ich denke auch, das klingt eher danach, als wenn ein eigenes Modul angezeigt wäre. oder aber eben das ACL-Modul, das ich schon mal erwähnt habe. Probier das doch mal aus, ich denke, das passt am besten und ist am unkompliziertesten