From 70ac50c42e4406d860293061e670fda13a42b8f7 Mon Sep 17 00:00:00 2001 From: Michael Wechner Date: Wed, 1 Feb 2012 10:04:50 +0100 Subject: [PATCH] also change the alias if it exists --- .../EditYanelUserProfileResource.java | 26 ++++++++++++++----- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/src/contributions/resources/yanel-user/src/java/org/wyona/yanel/impl/resources/yaneluser/EditYanelUserProfileResource.java b/src/contributions/resources/yanel-user/src/java/org/wyona/yanel/impl/resources/yaneluser/EditYanelUserProfileResource.java index 768005287..4313780e7 100644 --- a/src/contributions/resources/yanel-user/src/java/org/wyona/yanel/impl/resources/yaneluser/EditYanelUserProfileResource.java +++ b/src/contributions/resources/yanel-user/src/java/org/wyona/yanel/impl/resources/yaneluser/EditYanelUserProfileResource.java @@ -185,9 +185,9 @@ private void updatePassword(String oldPassword) { } /** - * Updates the user profile + * Update the email address (and possibly also the alias) inside user profile * - * @param email E-Mail address of user + * @param email New email address of user (and possibly also alias) */ private void updateProfile(String email) { if (email == null || ("").equals(email)) { @@ -197,12 +197,24 @@ private void updateProfile(String email) { } else { try { String userId = getUserId(); - User user = realm.getIdentityManager().getUserManager().getUser(userId); - user.setEmail(getEnvironment().getRequest().getParameter("email")); - user.setName(getEnvironment().getRequest().getParameter("userName")); - user.setLanguage(getEnvironment().getRequest().getParameter("user-profile-language")); + org.wyona.security.core.api.UserManager userManager = realm.getIdentityManager().getUserManager(); + User user = userManager.getUser(userId); + String previousEmailAddress = user.getEmail(); + user.setEmail(email); + //user.setName(getEnvironment().getRequest().getParameter("userName")); + //user.setLanguage(getEnvironment().getRequest().getParameter("user-profile-language")); user.save(); - setTransformerParameter("success", "Profile updated successfully"); + + String[] aliases = user.getAliases(); + for (int i = 0; i < aliases.length; i++) { + if (aliases[i].equals(previousEmailAddress)) { + userManager.createAlias(email, userId); + userManager.removeAlias(previousEmailAddress); + log.warn("Alias updated, which means user needs to use new email '" + email + "' to login."); + } + } + + setTransformerParameter("success", "E-Mail (and alias) updated successfully"); } catch (Exception e) { log.error(e, e); setTransformerParameter("error", e.getMessage());