Index: lams_central/src/java/org/lamsfoundation/lams/web/LoginRequestServlet.java =================================================================== diff -u -ra2e9316b26f3b48a9d98a4d23f6b909c7c294a6c -r7f889fb32c17c3d360197361b35d077dff038f13 --- lams_central/src/java/org/lamsfoundation/lams/web/LoginRequestServlet.java (.../LoginRequestServlet.java) (revision a2e9316b26f3b48a9d98a4d23f6b909c7c294a6c) +++ lams_central/src/java/org/lamsfoundation/lams/web/LoginRequestServlet.java (.../LoginRequestServlet.java) (revision 7f889fb32c17c3d360197361b35d077dff038f13) @@ -136,7 +136,10 @@ String login = user.getLogin(); UserDTO loggedInUserDTO = (UserDTO) hses.getAttribute(AttributeNames.USER); String loggedInLogin = loggedInUserDTO == null ? null : loggedInUserDTO.getLogin(); - if ((loggedInLogin != null) && loggedInLogin.equals(login)) { + // for checking if requested role is the same as already assigned + String role = method.equals(LoginRequestDispatcher.METHOD_LEARNER_STRICT_AUTHENTICATION) + ? LoginRequestDispatcher.METHOD_LEARNER : method; + if ((loggedInLogin != null) && loggedInLogin.equals(login) && request.isUserInRole(role)) { String url = LoginRequestDispatcher.getRequestURL(request); response.sendRedirect(response.encodeRedirectURL(url)); return;