Skip to content
Snippets Groups Projects
Commit 5efaa5e9 authored by srosse's avatar srosse
Browse files

OO-146: do a proper redirect after the logout to prevent an invisible red screen

parent 7f5648b5
No related branches found
No related tags found
No related merge requests found
...@@ -41,12 +41,15 @@ import org.olat.core.gui.control.Controller; ...@@ -41,12 +41,15 @@ import org.olat.core.gui.control.Controller;
import org.olat.core.gui.control.Event; import org.olat.core.gui.control.Event;
import org.olat.core.gui.control.WindowControl; import org.olat.core.gui.control.WindowControl;
import org.olat.core.gui.control.controller.BasicController; 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.id.Identity;
import org.olat.core.util.UserSession; import org.olat.core.util.UserSession;
import org.olat.core.util.WebappHelper;
import org.olat.core.id.User; import org.olat.core.id.User;
import org.olat.core.id.context.HistoryManager; import org.olat.core.id.context.HistoryManager;
import org.olat.core.id.context.HistoryModule; import org.olat.core.id.context.HistoryModule;
import org.olat.core.util.StringHelper; 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.Preferences;
import org.olat.core.util.prefs.PreferencesFactory; import org.olat.core.util.prefs.PreferencesFactory;
import org.olat.properties.PropertyManager; import org.olat.properties.PropertyManager;
...@@ -333,11 +336,13 @@ class UserPrefsResetForm extends FormBasicController { ...@@ -333,11 +336,13 @@ class UserPrefsResetForm extends FormBasicController {
protected void formOK(UserRequest ureq) { protected void formOK(UserRequest ureq) {
if (resetElements.isAtLeastSelected(1)) { if (resetElements.isAtLeastSelected(1)) {
// Log out user first if logged in // Log out user first if logged in
boolean logout = false;
Set<UserSession> sessions = UserSession.getAuthenticatedUserSessions(); Set<UserSession> sessions = UserSession.getAuthenticatedUserSessions();
for (UserSession session : sessions) { for (UserSession session : sessions) {
Identity ident = session.getIdentity(); Identity ident = session.getIdentity();
if (ident != null && tobeChangedIdentity.equalsByPersistableKey(ident)) { if (ident != null && tobeChangedIdentity.equalsByPersistableKey(ident)) {
session.signOffAndClear(); session.signOffAndClear();
logout = true;
break; break;
} }
} }
...@@ -365,6 +370,13 @@ class UserPrefsResetForm extends FormBasicController { ...@@ -365,6 +370,13 @@ class UserPrefsResetForm extends FormBasicController {
} }
// reset form buttons // reset form buttons
resetElements.uncheckAll(); 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"));
}
} }
} }
......
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