TYPO3: Benutzergruppen ändern mit Powermail

Powermail kann nicht nur Formulare versenden, sondern lässt sich auch prima dazu verwenden Inhalte in bestehende Tabellen zu schreiben.

Der Benutzer soll einem Haftungsausschluss zustimmen und so weitere Inhalte auf der Seite sehen. Dies ist über die Zugriff-Einstellungen möglich, aber wie wird der Benutzer in die neue Gruppe eingetragen? Wenn sich ein Benutzer selber einer weiteren Gruppe zuordnen soll ist dazu keine separate Extension nötig – dies kann problemlos mit Powermail erledigt werden.

Powermail kann von Haus aus Daten aus der fe_users Tabelle auslesen und damit Formularfelder vorbelegen. Damit später nicht der falsche Benutzerdatensatz geändert wird, muss unter der Extension-Konfiguration im Erweiterungs-Manager beim Feld “feusersPrefill” zusätzlich “uid” mit angegeben werden.

Im Formular wird ein neues Feld mit dem Feldtyp “Versteckt” angelegt. Den Wert bei “Name für Templates” z.b. ###UID123### muss man sich kurz merken und bei “Dieses Feld mit Daten aus der fe_user füllen” wird “uid” ausgewählt.

Nun kann man für die eine Haftungsausschluss-Seite ein Template anlegen und dort spezielle Werte definieren welche nur für diese Seite gelten sollen, aber andere Powermail-Formulare auf anderen Seiten nicht beeinflussen dürfen. Beispielsweise werden somit als Konstanten definiert:

plugin.powermail.allow.email2receiver = 0
plugin.powermail.allow.email2sender = 0
plugin.powermail.allow.dblog = 0
plugin.powermail.PID.dblog = 0
plugin.powermail.clear.session = 1

und im Setup:

plugin.tx_powermail_pi1 {
dbEntry {
fe_users._enable = TEXT
fe_users._enable.value = 1
fe_users._ifUnique.uid = update
# table “fe_user” with field “uid” is the value from powermail (tt_content uid 345) field uid123 (###uid123###)
fe_users.uid = TEXT
fe_users.uid.data = TSFE:fe_user|sesData|powermail_345|uid123
fe_users.usergroup = TEXT
fe_users.usergroup.value = 2,3
}
}

Erklärung: Der Benutzer (noch in usergroup 2) schickt das Formular ab und wird zusätzlich der usergroup 3 zugeordnet. Das Element welches das Powermail-Plugin enthält hat die uid 345 und das Formularfeld mit der vorausgefüllten uid des Benutzers hat die uid 123.

Author: admirableadmin

Hello World! Ich bin Andreas Peichert und entwickle und programmiere Software seit 2000. Zurzeit arbeite ich als Senior Solution Architect.

One thought on “TYPO3: Benutzergruppen ändern mit Powermail”

  1. Hi,

    ich habe noch eine kleine Sicherheitstechnische Anmerkung zu dieser Lösung.
    Ich finde es bedenklich die uid in dem Formular mit zu senden und zum auswählen des zu bearbeitenden Eintrages zu verwenden. ich kann darüber mit entsprechenden tools, sehr einfach die uid eines Anderen users in das Formular schreiben und seinen Account bearbeiten. Wenn es sich wie in meinem Fall also um Passwörter handelt, kann ich darüber über dem Account eines anderen habhaft werden.

    Ich lasse solche Daten immer erst direkt da erstellen wo sie auch gebraucht werden. Ich würde das Mitsenden der uid über das Formular also weg lassen und das Ganze so lösen:
    plugin.tx_powermail_pi1 {
    dbEntry {
    fe_users._enable = TEXT
    fe_users._enable.value = 1
    fe_users._ifUnique.uid = update
    # table “fe_user” with field “uid” is the value from powermail (tt_content uid 345) field uid123 (###uid123###)
    fe_users.uid = TEXT
    fe_users.uid.data = TSFE:fe_user|user|uid
    fe_users.usergroup = TEXT
    fe_users.usergroup.value = 2,3
    }
    }

    TSFE:fe_user|user|uid gibt mir auf jeden Fall die uid des angemeldeten Users zurrück und wird auch erst eingefügt wenn die Datenbank bearbeitet wird ohne das man vorher die uid manipulieren kann.

    Greez Björn

Leave a Reply

Your email address will not be published. Required fields are marked *