[gelöst] Benutzer soll Benutzer anlegen können
am 27.09.2011 - 13:59 Uhr in
Für meine Drupal 7.x Installation benötige ich Benutzer, die andere Benutzer anlegen können.
Diese Benutzer sollen keine Admin-Benutzer sein. Ich nenne Sie jetzt mal "Verwalter".
- Verwalter werden von Admins angelegt und können sich normal über das Frontend einloggen. Sie haben keinen Admin-Zugriff!
- Verwalter sollen normale Drupal-Benutzer anlegen können.
Das geht ja über die Permissions und die URL /admin/people/create auch über das Frontend (ohne Admin-Overlay)
Beim Anlegen eines Benutzers durch einen Verwalter, dürfen aber für die Benutzer nur bestimmte Rollen ausgewählt werden können. Der Verwalter soll keine Admin- oder Verwalter-Benutzer anlegen können dürfen.
Leider finde ich keine Lösung bis auf ein Modul:
http://drupal.org/project/subuser
Das aber nur minimal weiter entwickelt wird und auch nur in der Alpha-Version vorliegt.
Oder auch das Modul "Organic Groups". Aber ist dies nicht ein bisschen zu viel für diese einzelne Funktion? Und kann ich damit alles erreichen wie oben geschildert?
Gibt es hier keine Drupal-Core Lösung oder einen Workaround?
- Anmelden oder Registrieren um Kommentare zu schreiben

begs schrieb Gibt es hier
am 27.09.2011 - 15:54 Uhr
Gibt es hier keine Drupal-Core Lösung oder einen Workaround?
Ich hätte jetzt hier einen Ansatz, vielleicht könnte mir jemand sagen, ob das die richtige bzw. "drupal-like" Lösung ist.
- Ich schreibe ein Modul, das den hook_form_alter() implementiert
- Darin frage ich ab, ob es sich um das Benutzerformular dreht und ob der aktuelle Benutzer in der Gruppe "Verwalter" ist
- Wenn ja, dann lösche ich alle Role-Felder bis auf die Rolle "Einfacher Benutzer" (den der Verwalter ja anlegen darf) raus, so dass in den Rollen-Checkboxen nur noch "Authentifizierter Benutzer (prechecked)" und "Einfacher Benutzer" drin steht.
- Den ganzen Block "Rollen" blende ich dann noch per CSS aus, weil der Verwalter ja eh nur eine Rolle anchecken können soll.
Den ganzen Check auf die Rollen muss ich, nehme ich an, bei hook_user_update() und hook_user_insert() nochmal wiederholen.
Wäre das Ok?
Und wenn ja: Kennt jemand den Hook für das Formular, das unter admin/people/create erscheint? Es ist leider nicht der hook_form_alter()
Ja, das kann man so lösen,
am 27.09.2011 - 16:09 Uhr
Ja, das kann man so lösen, wenn man OG nicht nehmen will.
Der hook_form_alter gilt für jedes Formular. Die Form_ID lautet in Deinem Falle user_register_form.
Beste Grüße
Werner
Ohja! Das hat erst einmal
am 27.09.2011 - 16:18 Uhr
Ohja! Das hat erst einmal super geklappt. Vielen Dank!