Update session cookie expiry.
Update session cookie expiry to 4 weeks regardless of remember me checkbox is checked or not. LEARNER-6219
This commit is contained in:
@@ -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
|
||||
)
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 += "<br/><br/>"
|
||||
message += _(
|
||||
message += Text(_(
|
||||
"If you don't have an {platform_name} account yet, "
|
||||
"click <strong>Register</strong> 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('<strong>{register_text}</strong>').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?")
|
||||
|
||||
Reference in New Issue
Block a user