Erweiterbarkeit der Benutzerrechte durch Benutzer selbst
am 05.03.2010 - 18:44 Uhr in
Auf der Seite gibt es die Grundeinstellung für Gast und Authentifizierter Benutzer.
Die sollen auch weiter bleiben.
Gast hat nur Leserechte.
Authentifizieter Benutzer hat einige Schreibrechte. (Artikel und Kommentare)
Letzterer meldet sich, wie gehabt mit ausgedachtem Namen und email an.
Jetzt gibt es drei weitere Benutzer, die über Rollen angelegt sind.
Diese sollen mehr Schreibrechte erhalten, als der Authentifizierte Benutzer.
Das ist erstmal auch kein Problem, wenn Sie die Rolle haben.
Ich möchte aber erreichen, dass sich der Authentifizierte Benutzer für eine der drei Rollen (wobei es wohl egal ist, ob es eine oder 10 sind) mit mehr Schreibrechten selbst anmelden kann.
Es gibt für den Benutzer also 2 Möglichkeiten.
1. Ich bleibe Authentifizierter Benutzer und bin glücklich.
2. Ich möchte mehr und muss mich entscheiden für Rolle1, Rolle2 oder Rolle3.
Es gibt nur entweder/oder und es gibt kein zurück.
Als Seitenbetreiber möchte ich dann mehr Informationen.
Das Problem:
Ich möchte erreichen, dass sich der Benutzer
1. bei der Anmeldung entscheiden kann (kein Problem, das klappt mit Auto assign role oder User-slectable roles)
2. später unter Mein Konto für ein "Upgrade" entscheiden kann.
Das ist im Grunde auch noch kein Problem mit einem der beiden o.g. Module
Ich möchte jedoch erreichen, dass der Benutzer, wenn er sich für Rolle1, Rolle2 oder Rolle3 entschieden hat, keine Möglichkeit mehr hat, dieses zu ändern.
D.H. die Möglichkeit zum Wählen soll direkt danach "verschwinden" (von der Seite)
Was mir fehlt, ist sowas wie "eigene Rolle verwalten" in den Benutzer Berechtigungen, das ich dem Authentifizierten Benutzer ermögliche und Rolle1, R2 und R3 wieder wegnehmen kann
Apply for Role ist auch nicht die Lösung.
Da werden sich garantiert einige Spaßvögel direkt bewerben. Für eine Rolle nach der anderen.
Und der Admin hat die Arbeit die Spreu vom Weizen zu trennen.
Es muss also Konsequenzen haben und die dachte ich mit einem Formular zu erreichen. das dahinter geschaltet wird, in denen
z.B. die Adresse abgefragt wird. Wir dieses nicht ausgefüllt, passiert auch nichts.
Sprich: Keine Adresse --> keine höhere Rolle.
Ich habe es mit Auto assign role und user-selectable roles und auch über Profile versucht.
Das sind die Tipps aus dem Forum etc.
Was mach ich falsch?
Schonmal danke für die Hilfe.
PeSi
- Anmelden oder Registrieren um Kommentare zu schreiben
Hi PeSi, habe soetwas
am 05.03.2010 - 22:32 Uhr
Hi PeSi,
habe soetwas ähnliches vereinfacht mal gemacht, vielleicht hilft es ja weiter:
Ich habe eine Dummy-Rolle angelegt. In der Configuration von auto_assign habe ich diese Rolle automatisch zugewiesen, die anderen Rollen zu Auswahl durch den User. Anschliessend habe ich per Triggered Rules diese Dummy-Rolle nach dem ersten einloggen einfach gelöscht.
Evtl. wäre das ein Ansatz.
Gruss
abc123
Triggered Rules
am 06.03.2010 - 15:08 Uhr
Hallo abc123,
kannst Du mir zufällig sagen, wo ich dieses Modul finden kann. Bei Drupal.org hatte ich kein Glück.
Wenn es denn ein Modul ist!?
Erhlich gesagt, habe ich Deinen Lösungsansatz nicht ganz verstanden.
Meintest Du:
Manuell eine Dummy-Rolle anlegen?
Und per Automatismus (Triggered Rules) wieder löschen?
Ich würds vielleicht verstehen, wenn ich das Modul ausprobieren könnte.
Allerdings habe ich die oben beschriebenen Möglichkeiten für alle User vorgesehen.
Würde das nicht bedeuten, dass ich für jeden neuen User auch jedesmal eine Dummi-Rolle anlegen.
Eigentlich möchte ich verhindern, dass ich jedesmal eingreifen muss.
Wenn möglich soll das alles automatisch laufen.
Vielleicht nochmal zur Erklärung:
Mit den Rollen1, R2 und R3 soll das Geld für den Betrieb der Seite eingespielt werden.
Gast und Authentifizierter User laufen als Kostenlos.
Darum sollen R1, R2 und R3 ja ihre Rolle auch nicht wieder abwählen können. Aauch nicht aus versehen.
(Bezahlt ist Bezahlt)
Erst wenn die Zeite (meinetwegen das Jahr / Jahresbeitrag etc. Steht alles noch nicht fest) abgelaufen ist, sollen Sie ihren Status wieder verlieren.
Das wird dann aber ohnehin manuell gemacht werden müssen, da vermutlich ein Zahlungseingang (Bankkonto) mit dem Status auf der Seite abgeglichen werden muss.
Soweit bin ich aber noch nicht.
Irgendwie scheitert es an grundlegenden Dingen.
PeSi
www.ganzOS.de
www.ganz-OSnabrück.de
Hi Pesi, die Sache ist ganz
am 07.03.2010 - 19:12 Uhr
Hi Pesi,
die Sache ist ganz einfach ein kleiner Trick:
Bei mir sollen die Benutzer zu einem bestimmten Zeitpunkt etwas dürfen/sollen und zu einem anderen Zeitpunkt nicht. Das steuere ich über temporäre Zuweisung von Rollen.
Zu Anfang (bei der Anmeldung) bekommen die Benutzer automatisch (für die Benutzer unsichtbar) eine Rolle (habe ich Dummy genannt) standardmässig zugewiesen, zu der sie sich zusätzlich eine Rolle auswählen können. Diese Dummy-Rolle ermöglicht bestimmt Aktionen auf der Seite. Beim ersten Einloggen leite ich per Triggered Rules die Benutzer, die diese Rolle haben (also neu angemeldete Benutzer), auf eine Seite wo sie das Benutzerprofil ausfüllen können. Anschliessend lasse ich per Triggered Rules die Dummy-Rolle und die Weiterleitung automatisch löschen, sodass beim erneuten Einloggen die Benutzer nicht mehr auf die Profilseite weitergeleitet werden. Das ganze funktioniert automatisch ohne dass ich manuell etwas zuweisen muss.
Analog zu deinem Vorhaben würde ich den Benutzern eine Dummy-Rolle zuweisen und die Auswahl lassen zwischen kostenloser und kostenpflichtigen Mitgliedschaften. Etwas so:
- Dummy (automatisch unsichtbar)
- Kostenlos
- Bronze
- Silber
- Gold
Der Trick wäre der, dass nur die Benutzer die die Rolle Dummy + Bronze/Silber/Gold haben beim ersten Einloggen auf eine Seite weitergeleitet werden, auf der sie Nutzungshinweise zu lesen bekommen und eine Bankverbindung etc. eingeben können. Anschliessend die Rolle Dummy und die Weiterleitung löschen lassen und die Benutzer können das nicht mehr ändern.
Bei den Benutzern die die Rollen Dummy + Kostenlos haben würde ich beim ersten Einloggen einfach nur die Rolle Dummy löschen lassen.
Gruss
abc123
Nicht Rolle löschen, sondern Rollenzuweisung
am 07.03.2010 - 19:45 Uhr
Hallo abc123,
ich glaub jetzt habe ichs kappiert.
Du löscht (oder lässt löschen) nicht die Rolle selbst (unter Benutzer Rolle) sondern die einzelne Zuweisung des Users.
Das muß ich ausprobieren.
Zumindest für eine meiner erdachten Rolle wäre das eine Lösung.
Für die beiden anderen nicht. Denn die sollen, sobald diese Wahl stattgefunden hat, ihre Rolle behalten. Zumindest über einen längeren Zeitraum.
So was, wie ein Abo. Ich nennt's Jahresbeitrag. (Zeitraum also ein Jahr).
Was mich hier im Forum etwas wundert, ist dass ich nicht mit Lösungsvorschlägen überhäuft werden.
Das ist nicht böse gemeint. Ich will nur sagen, dass ich glaube, dass mein Problem ein "alltägliches" sein muss.
Aber vielleicht hab ich mit meiner Frage nur schon zu sehr in eine Richtung gefragt?
Ich hab mich vielleicht schon zu sehr versteift auf meine Logik und meine Struktur der Benutzerführung, dass ich etwas betriebsblind bin.
Wäre vielleicht noch ne Anregung im Forum einen Punkt Benutzerführung einzubauen.
Letztendlich solllen doch Menschen das ganze benutzen. Und das möglichst, ohne sich mit der Technik auseinandersetzen zu müssen.
Genug philosophiert.
Danke erstmal
PeSi
www.ganzOS.de
www.ganz-OSnabrück.de
Ja genau... ich lösche nur
am 07.03.2010 - 20:30 Uhr
Ja genau...
ich lösche nur die Zuweisung der Rolle "Dummy" zu einem neuen Benutzer, nachdem er sich zum erstenmal eingeloggt und auf die Profilseite weitergeleitet wurde. Die anderen Rollen, die sich der Benutzer ausgesucht hat, bleiben erhalten.
In deinem Fall könnte man evtl. mit einem CCK-Feld, das das Anmeldedatum + 1 Jahr auf true prüft, einen Trigger konstruieren, der dem Benutzer die Rolle "Aboverlängern" zuweist und ihn beim nächsten Einloggen auf eine Seite zur Verlängerung des Abos weiterleitet.
Alternativ würde mir noch das Workflow Modul einfallen, das einen Content "Aboverlängern" zur Wiedervorlage sendet.
Natürlich könnte man auch dem Benutzer 14 Tage vor Ablauf des Abos eine E-Mail zukommen lassen usw.
hab mir rules angesehen
am 09.03.2010 - 18:45 Uhr
Hallo abc123
hab mir rules angesehen. Da komm ich überhaupt nicht mit klar.
Du kennst nicht zufällig eine deutsche Anleitung?
Wenn man sich verhauen hat (und das soll Anfängern schonmal passieren), gibt irgendwie kein zurück!?
Kann man seine Regeln wieder umbauen, oder geht nur neu bauen?
Diese Plus vor den Regeln (Elementen) assoziiert irgenwie, dass man sie wie bei Formularfeldern beliebig hin und herziehn könnte.
Ist aber nicht.
Bis zum Dummy bin ich bis jetzt noch nichtmal vorgedrungen.
Werd am Ball bleiben.
Danke
PeSi
www.ganzOS.de
www.ganz-OSnabrück.de
Hi, ich gehe mal davon aus,
am 10.03.2010 - 14:32 Uhr
Hi,
ich gehe mal davon aus, dass du mit deinedomain.de/admin/rules/trigger/add eine neue Regel erstellst.
Die "Bezeichnung" sollte klar sein und bei "Event" das Ereignis auswählen bei dem die neue Regel greifen soll. Also z.B. "User has logged in".
Danach kann man eine Bedingung (Condition) definieren. Im Beispiel wäre das "User has role(s)". Dort dann die Rolle "Dummy" anklicken.
Zu guter Letzt eine Aktion (action) definieren. Zum Beispiel "Page redirect" auf die Aboseite und "Remove user role" für die Dummy-Rolle.
Die Kreuze vor "Add a Condition" und "Add a Action" habe - soweit ich das sehe - keine Funktion.
Mir Klick auf den Text kann man einen neue Eintrag einstellen. Oder mit Klick auf einen alten Eintrag diesen Bearbeiten.
Eigentlich ganz einfach.
Greetz
abc123