diff --git a/common/djangoapps/third_party_auth/tests/specs/base.py b/common/djangoapps/third_party_auth/tests/specs/base.py index edd2eb7eb5..1cf8965fbc 100644 --- a/common/djangoapps/third_party_auth/tests/specs/base.py +++ b/common/djangoapps/third_party_auth/tests/specs/base.py @@ -120,7 +120,7 @@ class HelperMixin(object): """Asserts failure on /login for missing social auth looks right.""" self.assertEqual(403, response.status_code) self.assertIn( - "successfully logged into your %s account, but this account isn't linked" % self.provider.name, + "successfully logged into your %s account, but this account isn't linked" % self.provider.name, response.content ) diff --git a/openedx/core/djangoapps/user_api/tests/test_views.py b/openedx/core/djangoapps/user_api/tests/test_views.py index 13c80aeeb2..bbc885e721 100644 --- a/openedx/core/djangoapps/user_api/tests/test_views.py +++ b/openedx/core/djangoapps/user_api/tests/test_views.py @@ -658,13 +658,7 @@ class LoginSessionViewTest(UserAPITestCase): response = self.client.get(reverse("dashboard")) self.assertHttpOK(response) - @ddt.data( - (json.dumps(True), False), - (json.dumps(False), True), - (None, True), - ) - @ddt.unpack - def test_login_remember_me(self, remember_value, expire_at_browser_close): + def test_session_cookie_expiry(self): # Create a test user UserFactory.create(username=self.USERNAME, email=self.EMAIL, password=self.PASSWORD) @@ -674,17 +668,13 @@ class LoginSessionViewTest(UserAPITestCase): "password": self.PASSWORD, } - if remember_value is not None: - data["remember"] = remember_value - response = self.client.post(self.url, data) self.assertHttpOK(response) # Verify that the session expiration was set correctly - self.assertEqual( - self.client.session.get_expire_at_browser_close(), - expire_at_browser_close - ) + cookie = self.client.cookies[settings.SESSION_COOKIE_NAME] + expected_expiry = datetime.datetime.now() + datetime.timedelta(weeks=4) + self.assertIn(expected_expiry.strftime('%d-%b-%Y'), cookie.get('expires')) def test_invalid_credentials(self): # Create a test user diff --git a/openedx/core/djangoapps/user_authn/views/login.py b/openedx/core/djangoapps/user_authn/views/login.py index a84ffd10a6..5d173acc77 100644 --- a/openedx/core/djangoapps/user_authn/views/login.py +++ b/openedx/core/djangoapps/user_authn/views/login.py @@ -27,6 +27,7 @@ from openedx.core.djangoapps.external_auth.models import ExternalAuthMap from openedx.core.djangoapps.password_policy import compliance as password_policy_compliance from openedx.core.djangoapps.site_configuration import helpers as configuration_helpers from openedx.core.djangoapps.util.user_messages import PageLevelMessages +from openedx.core.djangolib.markup import HTML, Text from student.models import ( LoginFailures, PasswordHistory, @@ -77,11 +78,14 @@ def _do_third_party_auth(request): provider_name=requested_provider.name, ) message += "

" - message += _( + message += Text(_( "If you don't have an {platform_name} account yet, " - "click Register at the top of the page." - ).format( - platform_name=platform_name + "click {register_label_strong} at the top of the page." + )).format( + platform_name=platform_name, + register_label_strong=HTML('{register_text}').format( + register_text=_('Register') + ) ) raise AuthFailedError(message) @@ -257,11 +261,8 @@ def _handle_successful_authentication_and_login(user, request): try: django_login(request, user) - if request.POST.get('remember') == 'true': - request.session.set_expiry(604800) - log.debug("Setting user session to never expire") - else: - request.session.set_expiry(0) + request.session.set_expiry(604800 * 4) + log.debug("Setting user session expiry to 4 weeks") except Exception as exc: AUDIT_LOG.critical("Login failed - Could not create session. Is memcached running?") log.critical("Login failed - Could not create session. Is memcached running?")