Skip to content
Snippets Groups Projects
Commit 873089e5 authored by srosse's avatar srosse
Browse files

OO-2096: fix email validation in change email workflow

parent bd0f0a83
No related branches found
No related tags found
No related merge requests found
......@@ -19,7 +19,9 @@
*/
package de.bps.olat.user;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import org.olat.core.gui.UserRequest;
import org.olat.core.gui.control.WindowControl;
......@@ -103,9 +105,13 @@ public class ChangeEMailExecuteController extends ChangeEMailController implemen
XStream xml = new XStream();
@SuppressWarnings("unchecked")
HashMap<String, String> mails = (HashMap<String, String>) xml.fromXML(tempKey.getEmailAddress());
Identity ident = UserManager.getInstance().findIdentityByEmail(mails.get("currentEMail"));
if (ident != null) {
String currentMail = mails.get("currentEMail");
List<Identity> identities = UserManager.getInstance()
.findIdentitiesByEmail(Collections.singletonList(currentMail));
if (identities != null && identities.size() == 1) {
// change mail address
Identity ident = identities.get(0);
ident.getUser().setProperty("email", mails.get("changedEMail"));
// if old mail address closed then set the new mail address
// unclosed
......@@ -119,6 +125,9 @@ public class ChangeEMailExecuteController extends ChangeEMailController implemen
// remove keys
ident.getUser().setProperty("emchangeKey", null);
userRequest.getUserSession().removeEntryFromNonClearedStore(ChangeEMailController.CHANGE_EMAIL_ENTRY);
} else {
// error message
wControl.setWarning(pT.translate("error.change.email.unexpected", new String[] { mails.get("currentEMail"), mails.get("changedEMail") }));
}
// delete registration key
rm.deleteTemporaryKeyWithId(tempKey.getRegistrationKey());
......
......@@ -18,6 +18,7 @@ email.change.wherefrom=Diese Anfrage an den Server {0} wurde am {1} \nvon der IP
email.notsent=Die E-Mail konnte nicht versendet werden.
email.sent=Die E-Mail wurde erfolgreich versendet.
error.change.email=Dieser Aktivierungs-Link wurde bereits verwendet und ist somit nicht mehr g\u00FCltig.
error.change.email.unexpected=Ihre E-Mail Adresse konnte nicht ge\u00C4ndert werden. Ein unerwarteter Fehler ist aufgetreten.
error.change.email.time=Dieser Aktivierungs-Link hat eine G\u00FCltigkeitsdauer von {0} Stunden und ist somit nicht mehr g\u00FCltig.
error.no.props.found=Es wurden keine Properties f\u00FCr diesen Benutzer gefunden
error.password.empty=Geben Sie Ihr bisheriges Passwort an
......
......@@ -19,6 +19,7 @@ email.notsent=This E-mail could not be sent.
email.sent=E-mail sent successfully.
error.change.email=This activating link has already been used and is therefore invalid.
error.change.email.time=This activating link can only be used for {0} hrs and is therefore invalid.
error.change.email.unexpected=Your E-mail could not be changed. An unexpected server error occurred.
error.no.props.found=No properties found for this user
error.password.empty=Please indicate your previous password
error.password.noauth=Your previous password is inaccurate
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment