Benutzer darf seine Benutzergruppe im Frontend ändern

  • Joomla Version
    4.2.9
    PHP Version
    PHP 8.1.x
    Hoster
    hosteurope
    Link (URL) zur Seite mit dem Problem
    https://www.give-consulting.com/_neu3/index.php/de/fuer-kandidaten/bewerbung-und-anmeldung

    Ich möchte es einem Benutzer ermöglichen, im Bereich Edit Profile seine Benutzergruppe selbstständig im Frontend zu ändern - von Benutzergruppe-1 auf Benutzergruppe-2 (aber nicht auf Super User). Gibt es da eine Möglichkeit?

  • Ja, leg ihn einfach 2x an. Loginzugang für BG1 und Login-Zugang für BG2.

    Ansonsten entspricht dein Wunsch keiner Logik in der Benutzerverwaltung und wird out of the box nicht möglich sein.

    Man gehört halt einer oder mehreren Benutzergruppen an.

  • Zitat

    Ansonsten entspricht dein Wunsch keiner Logik in der Benutzerverwaltung und wird out of the box nicht möglich sein.

    Das denke ich auch.


    Wobei ich glaube, dass du nicht wirklich Benutzergruppen im Sinne von ACL meinst, sondern Benutzergruppe im Sinne von Kategorien

    Eine fertige Lösung kenne ich nicht, aber solche use cases gibt es natürlich.

    Das muss sorgfältig durchdacht werden und dafür reichen deine Angaben nicht.

  • Dass der Benutzer das selber machen können soll, kann ich auch nicht nachvollziehen. Generell kann ich mir das aber durchaus vorstellen. Zum einen, was Christiane sagt, zum anderen auch im Zusammenhang mit Bezahlbereichen, wo dann der Benutzer in neue Gruppen freigeschaltet wird. Aber grundsätzlich ist das schon in der 3er Version ein Problem gewesen (das Dingens mit der Bezahlung).

    Erzähl doch mal genauer, was du machen möchtest?


    Axel

  • Ok-ok- es ist wirklich durch die Hintertür ... Mein Problem war: ich habe ein Formular im Bereich edit profile angelegt. Die Daten, die die Benutzer dort eingeben, sollen per Email versandt werden. Peer Luks hat dafür ein schönes Plugin geschrieben. Die Benutzer brauchen aber zum Ausfüllen viel Zeit, da das Formular umfangreich ist. Deshalb wollte ich eine Möglichkeit bereitstellen, das Formular zwischenzuspeichern. Jetzt wird aber im Moment bei jedem Speichern die Email mit den (unfertigen) Daten verschickt. Es gibt aber in dem Plugin die Möglichkeit, je nach Benutzergruppe an verschiedene Adressen zu schicken. Also dachte ich mir: der Benutzer speichert so oft er will ab - die Mails gehen immer an ihn selbst oder irgendwohin ins Nirwana. Wenn er fertig ist klickt er eine Checkbox an "fertig" und wird dadurch einer anderen Benutzergruppe zugewiesen. Dann geht die Mail an die richtige Adresse. Aber es ist zu kompliziert gedacht. Ich brauche einfach einen Email-Button und einen Sende-Button.


    Aber ich sehe auch bei meinen Tests, dass das Formular über custom fields user sehr stabil läuft und die Daten selbst dann vorhanden bleiben, wenn ich den Computer zwischendurch in den Ruhezustand versetzte. Die Session bleibt erhalten. Da gab es vorher bei Chronoforms immer wieder Probleme. Ob das aber nur bei mir so ist, weiß ich noch nicht.

  • Kurze Erläuterung des Plugin: Es ist ein User-Plugin und feuert bei onUserAfterSave(). Hier werden die alten und neuen Daten verglichen und bei Änderungen werden diese in einer Mail mit Gegenüberstellung versendet. Die Mail enthält Standard-Werte wie Name, Benutzername und E-Mail des Benutzer. Zusätzlich kann man die Felder vom Joomla-Profil hinzufügen lassen oder auch Custom-Fields, wenn diese aktiviert / angelegt sind.


    Vorher wurde immer eine Mail versendet, wenn die Daten geändert wurden. Mit dem neusten Update habe ich die Auswahl von Benutzergruppen hinzugefügt. Das heißt, bevor die Mail versendet wird, wird zusätzlich geprüft, ob der User Mitglied eines der gewählten Benutzergruppen ist.


    Profile to Mail Plugin


    Für den hier beschriebenen Einsatzfall möchte er aber, dass die E-Mail nur versendet wird, wenn bestimmte Felder ausgefüllt sind.

    Ich habe mich bisher mit den in J4 integrierten Sheduled Tasks noch nicht beschäftigt. Mein Vorschlag wäre sonst gewesen, dass man einen Cronjob erstellt, der die Felder prüft und wenn diese wie gewünscht befüllt sind, dann wird der User in eine andere Benutzergruppe aufgenommen und ein Wert für das Plugin geändert.

    Wenn man die Lösung hat, dann muss man nur noch das passende Problem finden.