User kann beim Registrieren Rolle wählen, je nach Rolle anderes Formular, später kann er weitere Rollen wählen

am 10.05.2011 - 16:19 Uhr in
Ich habe Content Profil installiert.
Nun möchte ich drei Rollen definieren.
Jede Rolle baut auf die andere auf.
D.h. Bei Rolle 1 wird nur Benutzername und Email abgefragt.
Bei Rolle 2 zusätzlich Firma und bei Rolle 3 zusätzlich Bankdaten.
Nun soll ein User im Registrierungs-Prozess wählen können, welche Rolle er bekommen will.
Er kann z.B. mit Rolle 1 starten.
Später will er Rolle 3 dazu wählen.
Das könnte man ja einfach mit „Auto Assign Role“ managen.
Nur verstehe ich es nicht, wie man es regeln kann, daß bei späterem Hinzufügen einer Rolle, bei der mehr Felder abgefragt werden sollen, ein erweitertes Formular angezeigt wird.
Also wenn er bisher schon Rolle 2 hat und jetzt Rolle 3 hinzufügen will, dann muß ein Formular aufpoppen, daß nur die Felder noch zusätzlich abfragt, die bei den bisherigen Registrierungs-Formularen nicht gezeigt wurden, im Beispiel also Bankdaten.
Hatte er bisher nur Rolle 1, dann werden Firma und Bankdaten noch abgefragt.
Die Daten für Namen, Firma ect. soll natürlich in der Datenbank immer in die gleiche Tabellen-Spalte geschrieben werden.
Welche Module bzw. welche Vorgehensweisen sind da das Mittel der Wahl?
- Anmelden oder Registrieren um Kommentare zu schreiben
installiere das webform
am 10.05.2011 - 18:15 Uhr
installiere das webform modul, erstelle die entsprechenden formulare und leite den benutzer je nach rolle zum entsprechenden formular weiter.
Das geht doch ganz einfach
am 10.05.2011 - 19:03 Uhr
Das geht doch ganz einfach über die "Persmissions". Rolle A darf nur Feld A und Feld B editieren - Rolle B darf Feld A, Feld B, Feld C und D editieren usw.
Alle diese Felder legst Du im Inhaltstypen für Dein Content-Profil an (z.B. im "profile") - setzte die Persmissions und je nach Rolle werden nur die entsprechenden Felder angezeigt. Fügst Du einem User später eine weitere Rolle hinzu, hat er automatisch Zugriff auf die weiteren Felder.
Wird eine Rolle entzogen, verschwindet auch die Editierbrkeit der entsprechenden Felder wieder.
würde mich interessieren, ob
am 10.05.2011 - 19:09 Uhr
würde mich interessieren, ob dies weiterhin funktioniert, wenn manche felder mittels content profile als pflichtfelder gesetzt sind.
Das funzt natürlich auch mit
am 10.05.2011 - 19:14 Uhr
Das funzt natürlich auch mit Pflichtfeldern!
Mein Inhaltstyp fürs Content-Profil hat 145 Felder. Diese werden, auf 5 verschiedene Rollen, "aufgeteilt" sodass jede Rolle zw. 20 und 30 Felder ausfüllen muss/kann und jede Rolle hat ganz spezielle Pflichtfelder die nur für die entsprechende Rolle sichtbar sind.
145 formularfelder im content
am 10.05.2011 - 19:19 Uhr
145 formularfelder im content profil finde ich aus usability sicht fraglich. freut mich, wenn dieser einfache weg dem poster hilft.
installiere das webform
am 11.05.2011 - 11:51 Uhr
Hi Jepster,
Wie ist das geregelt, da die Daten die ich via Webform entgegen nehme so ins User-Profil (also an die richtige Stelle in der Datenbank) geschrieben werden, daß ich später per View ect. drauf zugreifen kann?
Hi Ionit, Das entscheidende
am 11.05.2011 - 12:00 Uhr
Hi Ionit,
Das entscheidende Problem dabei ist, daß nicht ich als Admin später eine weitere Rolle hinzufüge, sondern der User entscheidet, daß er jetzt eine weitergehende Rolle einnehmen will und kann auswählen, welche das ist.
(Funktioniert ja wohl über „Auto Assign Role")
D.h. die richtigen Felder müssen schon angezeigt werden, b e v o r er die entsprechende Rolle hat.
Aber evt. gehts ja trotzdem so ähnlich, wie Du vorschlägst:
Wenn bei der Auswahl der Rolle durch den User die Seite mit dem Formular (also Content-Profil) mit einem bestimmten Parameter aufgerufen wird, dann müßte doch auch über Conditions zu regeln sein, was er kriegt, oder?
Bzw. doppelt: Es muß einmal abgefragt werden, welche Rollen er schon hat.
Die entsprechenden Felder müssen ihm gezeigt werden, falls er sie editieren will. Und es muß abgefragt werden, welche Felder zusätzlich gezeigt werden müssen, weil er ja jetzt noch eine zusätzliche Rolle haben will...oder?
Ist das verständlich, was ich meine?
Dazu brauche ich einmal Content Access für die Felder, die ich abhängig von der Rollenzugehörigkeit anzeigen will, oder?
Und welches Modul regelt mir das mit dem Anzeigen abhängig von einem Parameter?
Oder geht das via PHP so wie bei der Sichtbarmachung von Blöcken?
Muß ich noch mal gucken...
Zitat: .... sondern der User
am 11.05.2011 - 12:09 Uhr
.... sondern der User entscheidet, daß er jetzt eine weitergehende Rolle einnehmen will und kann auswählen, welche das ist
Dass das mit Auto-Assign-Role funktioniert, ist mir nicht bekannt. Mit Auto-Assign-Role kann man, wenn ein neuer Account angelegt wird, eine oder mehrere Rollen vergeben. Wenn der Account aber schon besteht, kann man mit Auto-Assign-Role nicht noch, nachträglich, eine weitere Rolle hinzufügen.
D.h. die richtigen Felder müssen schon angezeigt werden, b e v o r er die entsprechende Rolle hat.
Welche Felder meinst Du hier und warum müssen sie, bevor der User einen weitere Rolle einnimmt, angezeigt werden? Das verstehe ich gerade nicht!
Möglicherweise würde Dir,
am 11.05.2011 - 12:16 Uhr
Möglicherweise würde Dir, wenn der User selbstständig eigene Rollen zuweisen können soll, dieses Modul weiter helfen. http://drupal.org/project/role_delegation
Ich dachte, ich kann mit
am 11.05.2011 - 14:02 Uhr
Ich dachte, ich kann mit Auto-Assign-Role einfach dem User an einer bestimmten Stelle einen Link anbieten auf Registrierung...ach klar, da liegt mein Gedankenfehler.
Er muß sich ja nicht mehr komplett Registrieren, sondern nur Felder ausfüllen und eine Rolle hinzufügen.
OK...dann schaue ich mir mal das role_delegation an.
Bei Deiner zweiten Frage, das ist das Henne-Ei-Prinzip.
Kann er eine Rolle wählen (also komplett abspeichern, so daß die Rolle wirksam wird für ihn) ohne die zusätzlichen Felder ausgefüllt zu haben? Weil die werden ja erst sichtbar, wenn er die Rolle bereits inne hat.
Damit ist z.B. das Feld Firma, Umsatzsteuer-ID gemeint, falls er die Rolle Betrieb einnehmen möchte.
Die damit verbundenen Rechte dürfen erst greifen, wenn er die neuen Pflichtfelder ausgefüllt hat.
Weil er nur dann bestimmte Preise sieht z.B. oder bestimmte Infos online stellen darf, wenn er glaubhaft gemacht hat, ein Händler zu sein und keine Privatperson.
Aber evt. geht da ja auch was mit dem role_delegation...
Danke übrigens fürs Mitüberlegen ;-)
Das Role Delegation -Modul ist schon mal ein guter Schritt!
am 28.05.2011 - 15:33 Uhr
nun habe ich die Auto-Assign-Role deaktivert und das Role Delegation -Modul installiert.
Nun kann ich als Admin bei jeder Rolle angeben, welcher Rolle diese wiederum wählen darf.
Das funktioniert sowohl bei der Registrierung bzw. später, wenn der User seine Benutzerdaten editiert.
Ich habe für alle Benutzer eine Profilseite angelegt.
Auf dieser Seite sind alle Felder angelegt.
Über das content_permissions-Modul ist geregelt, daß Rolle A weniger Felder sieht als Rolle B und diese weniger als Rolle C.
Wenn der User jetzt wählt, daß er auch Rolle C haben will, dann sieht er plötzlich auch mehr Felder auf seiner Profilseite.
Nun muß ich aber noch ein paar Dinge bewerkstelligen:
a) daß manche Felder zwar bei Rolle A angezeigt werden, aber erst bei Rolle B oder C zum Pflichtfeld werden.
b) daß er gezwungen wird, seine (Pflicht-)Profildaten zu ergänzen, wenn er Rolle B oder C hinzuwählt.
c) wenn der User sich auf einer bestimmten Einstiegsseite befindet, bzw. einen bestimmten Link betätigt, dann soll eine bestimmte Rolle automatisch hinzugefügt werden und er automatisch auf sein Profil kommen, um seine Daten zu ergänzen.
Wenn jemand einen Tipp hat dazu, gerne her damit, ich werde parallel weiter suchen und testen und hier berichten, wie es klappt.