From 5efaa5e9df399e567e525688d94d0afc463c0440 Mon Sep 17 00:00:00 2001 From: srosse <none@none> Date: Wed, 25 Jul 2012 17:18:55 +0200 Subject: [PATCH] OO-146: do a proper redirect after the logout to prevent an invisible red screen --- .../java/org/olat/user/ChangePrefsController.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/main/java/org/olat/user/ChangePrefsController.java b/src/main/java/org/olat/user/ChangePrefsController.java index d4433cb9b4e..ab7f1840770 100644 --- a/src/main/java/org/olat/user/ChangePrefsController.java +++ b/src/main/java/org/olat/user/ChangePrefsController.java @@ -41,12 +41,15 @@ import org.olat.core.gui.control.Controller; import org.olat.core.gui.control.Event; import org.olat.core.gui.control.WindowControl; import org.olat.core.gui.control.controller.BasicController; +import org.olat.core.gui.media.RedirectMediaResource; import org.olat.core.id.Identity; import org.olat.core.util.UserSession; +import org.olat.core.util.WebappHelper; import org.olat.core.id.User; import org.olat.core.id.context.HistoryManager; import org.olat.core.id.context.HistoryModule; import org.olat.core.util.StringHelper; +import org.olat.core.util.i18n.I18nManager; import org.olat.core.util.prefs.Preferences; import org.olat.core.util.prefs.PreferencesFactory; import org.olat.properties.PropertyManager; @@ -333,11 +336,13 @@ class UserPrefsResetForm extends FormBasicController { protected void formOK(UserRequest ureq) { if (resetElements.isAtLeastSelected(1)) { // Log out user first if logged in + boolean logout = false; Set<UserSession> sessions = UserSession.getAuthenticatedUserSessions(); for (UserSession session : sessions) { Identity ident = session.getIdentity(); if (ident != null && tobeChangedIdentity.equalsByPersistableKey(ident)) { session.signOffAndClear(); + logout = true; break; } } @@ -365,6 +370,13 @@ class UserPrefsResetForm extends FormBasicController { } // reset form buttons resetElements.uncheckAll(); + + if(logout) { + //if logout, need a redirect to the login page + String lang = I18nManager.getInstance().getLocaleKey(ureq.getLocale()); + ureq.getDispatchResult().setResultingMediaResource( + new RedirectMediaResource(WebappHelper.getServletContextPath() + "/dmz/?lang=" + lang + "&logout=true")); + } } } -- GitLab