Passwort vergessen
Nach Drücken von "Paßwort vergessen" wird auf eine Seite geleitet (pwvergessen.htm), wo man die E-Mail, mit der man angemeldet ist, eingeben muß. Nach Prüfung wird ein DS im Container "Token" angelegt und eine E-Mail mit einem Link (Token und Email im Request) an die angegebene Adresse geschickt. Nach Klicken des Links öffnet sich eine Seite mit Paßwort-Eingabefeldern. Nach Prüfung der Token-Daten wird das neue PW in der Benutzerverwaltung gespeichert.
Containeraufbau:
Token - einfaches Textfeld
Erstelldatum - Datumsfeld
Email - einfaches Textfeld
BC - BC-Verknüpfung
Kontakt - Einzelverknüpfung mit Kontakt-Container
Actions anlegen:
pwvergessen.act
- Filteraction: prüft, ob's die angegebenen Email im Kontakt-Container gibt und ruft savetoken.act auf
- Weiterleitung auf Info-Seite
Beispiele
1.) Actionbaustein "Container-Daten Filteraction" - Prüfen, ob's Email im "Kontakte" gibt
list: ID des Kontakte-Containers
xml:
<filter>
<filter-object required="true">
<field>Kontakt_Email</field>
<type>4</type>
<request-value>email</request-value>
</filter-object>
<limit max="1"/>
</filter>
url:
savetoken.act?Token=<bx:tools.uuid/>&Kontakt=<bx:recorddata.id/>&BCVerknuepfung=<bx:recordfield.Kontakt_BC><bx:recorddata.id/></bx:recordfield.Kontakt_BC>&Erstelldatum=<bx:tools.urlencode><bx:tools.datum pattern="dd.MM.yyyy HH:mm"/></bx:tools.urlencode>&Email=<bx:recordfield.Kontakt_Email/>
failurl:
pwvergessen.htm?fehler=1&email=[[email]]
2.) Actionbaustein "Weiterleitung" - Weiterleitung
destination: mailverschickt.htm
savetoken.act
- Speicheraction: erzeugt neuen Token-DS
- CMS-Seite verschicken: mit Link (mit Token und Email)
Beispiele
1.) Actionbaustein "Container-Daten speichern" - Neuen Token-DS anlegen
listid: ID des Token-Containers
recordidfield: tokenid
active: ja
2.) Actionbaustein "CMS-Seite versenden" - Email mit Token versenden
alle vorherigen Felder ensprechend ausfüllen
file: pwemail.htm?tokid=[[tokenid]]
checkpw.act
- prüft, ob Paßwörter da und gleich sind
- Filteraction: sucht Token anhand von Parametern und Datum raus (prüfen, ob noch gültig), ruft changepw.act auf
Beispiele
1.) Aktionsbaustein "vorhandene Bedingung abfragen" - Paßwörter da?
requestField: Passwort
compareValue: #nodata
conditionTrue: changepw.htm?fehler=1&token=[[token]]&email=[[email]]
2.) Aktionsbaustein "vorhandene Bedingung abfragen" - Paßwörter gleich?
requestField: Passwort
compareValue: [[Passwortwdhlg]]
conditionFalse: changepw.htm?fehler=2&token=[[token]]&email=[[email]]
3.) Aktionsbaustein "Container-Daten Filteraction" - prüfen, ob Token-DS gültig ist
list: ID des Token-Containers
xml:
<filter>
<filter-object required="true">
<field>Token</field>
<type>4</type>
<request-value>token</request-value>
</filter-object>
<filter-object required="true">
<field>Email</field>
<type>4</type>
<request-value>email</request-value>
</filter-object>
<filter-object>
<field>Erstelldatum</field>
<type>4</type>
<special-value days="-1">TODAY</special-value>
</filter-object>
</filter>
url: changepw.act?user=<bx:recordfield.BCVerknuepfung type="id"/>&Token=&tokid=<bx:recorddata.id/>&password=[[Passwort]]
failurl: changepw.htm?fehler=3
4.) Aktionsbaustein "Weiterleitung" - Weiterleitung
destination: ok.htm
changepw.act
- PW ändern: ändert in der Benutzerverwaltung das Paßwort
- speichern: löscht den Token im Token-DS, DS selbst bleibt aber erhalten
- Weiterleitung an Info-Seite (Benutzer muß sich nun mit neuem Paßwort einloggen)
Beispiele
1.) Actionbaustein "Intranet-User anlegen/ändern" - geändertes PW speichern
Parametername des Benutzer-ID-Feldes: user
Parametername des Passwortfeldes: password
2.) Actionbaustein "Container-Datensatz speichern" - Container-Daten speichern
listid: ID des Token-Containers
recordidfield: tokid
Seiten bauen
pwvergessen.htm: Seite mit E-Mail-Eingabe, ruft pwvergessen.act auf, Ausgabe, wenn Email nicht gefunden
Beispiele
<form action="pwvergessen.act" method="post">
<label for="email">Ihre E-Mail-Adresse: </label>
<input type="text" id="email" name="email" value="<bx:pagedata.request name="email"/>">
<bx:pagedata.request name="fehler" value="1">Bitte geben Sie Ihre E-Mail-Adresse an.</bx:pagedata.request>
<bx:pagedata.request name="fehler" value="2">Mit dieser Email sind Sie nicht angemeldet.</bx:pagedata.request>
<br>
<input type="submit" value="abschicken">
</form>
mailverschickt.htm: Info-Seite, "So geht' weiter...", nachdem Email mit dem Token verschickt wurde
changepw.htm: Seite mit Feldern zur Paßwortänderung, ruft checkpw.act auf, Ausgabe, wenn Token nicht mehr gültig
Beispiele
<bx:pagedata.request name="fehler" value="3">Der Link aus der E-Mail ist nicht mehr gültig. Bitte fordern Sie einen neuen Link an.</bx:pagedata.request>
<form action="checkpw.act" method="post">
<input type="hidden" name="token" value="<bx:pagedata.request name="token"/>">
<input type="hidden" name="email" value="<bx:pagedata.request name="email"/>">
<label for="Passwort">neues Paßwort:*</label>
<input id="Passwort" type="text" name="Passwort" value=""> <bx:pagedata.request name="fehler" value="1">Bitte geben Sie Ihr Paßwort incl. Wiederholung an.</bx:pagedata.request><br>
<label for="Passwortwdhlg" style="width:145px;">Paßwortwiederholung:*</label>
<input id="Passwortwdhlg" type="text" name="Passwortwdhlg" value=""> <bx:pagedata.request name="fehler" value="2">Die beiden Paßwörter sind nicht gleich.</bx:pagedata.request><br>
<input type="submit" value="speichern" style="margin-left:145px;">
</form>
ok.htm: Info-Seite, "So geht' weiter...", nachdem PW erfolgreich geändert wurde
pwemail.htm: Mail mit dem Token
Beispiele
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Paßwort vergessen</title>
</head>
<body>
<bx:containerloop.User pool="132AF649539" idfield="tokid" force="single">
<bx:recordfield.Kontakt>
Guten Tag, <bx:recordfield.Kontakt_Anrede/> <bx:if><bx:recordfield.Kontakt_Vorname/> </bx:if><bx:recordfield.Kontakt_Vorname/> <bx:recordfield.Kontakt_Name/>,
<br><br>
</bx:recordfield.Kontakt>
Sie hatten auf "Paßwort vergessen" geklickt. Wenn nicht, dann ignorieren Sie diese Mail.
<br><br>
Bitte folgenden Link anklicken - Sie können dann ein neues Paßwort vergeben. Dieser Link ist einen Tag gültig und nur einmal verwendbar.
<br>
**********************************************************************************************************************<br>
http://mrp.batix.net/www/nab/mitgliederbereich/changepw.htm?token=<bx:recordfield.Token/>&email=<bx:recordfield.Email/>
**********************************************************************************************************************<br>
Bitte beachten Sie: Bei einigen Browsern und E-Mail-Programmen lässt sich der Link nicht anklicken. Sollte dies der Fall sein, kopieren Sie bitte den kompletten Link in die Adresszeile Ihres Browsers und bestätigen mit der Return-Taste.
<br><br>
Mit freundlichen Grüßen<br>
Das Notarzt-Börse-Team
</bx:containerloop.User>
</body>
</html>