diff --git a/lms/static/sass/views/_login-register.scss b/lms/static/sass/views/_login-register.scss index 1447f3c4ee..29e9c14f94 100644 --- a/lms/static/sass/views/_login-register.scss +++ b/lms/static/sass/views/_login-register.scss @@ -220,6 +220,11 @@ $sm-btn-linkedin: #0077b5; font-weight: 500; } + #login-remember { + line-height: 0; + height: auto; + } + label { display: block; margin: 0 0 6px 0; @@ -239,6 +244,10 @@ $sm-btn-linkedin: #0077b5; vertical-align: top; } + &[for="login-remember"] { + display: inline-block; + } + a { font-family: $sans-serif; } diff --git a/openedx/core/djangoapps/user_api/tests/test_views.py b/openedx/core/djangoapps/user_api/tests/test_views.py index 0337b2cbcf..34f3b780a6 100644 --- a/openedx/core/djangoapps/user_api/tests/test_views.py +++ b/openedx/core/djangoapps/user_api/tests/test_views.py @@ -646,7 +646,18 @@ class LoginSessionViewTest(ApiTestCase): "max_length": PASSWORD_MAX_LENGTH }, "errorMessages": {}, - } + }, + { + "name": "remember", + "defaultValue": False, + "type": "checkbox", + "required": False, + "label": "Remember me", + "placeholder": "", + "instructions": "", + "restrictions": {}, + "errorMessages": {}, + }, ]) def test_login(self): diff --git a/openedx/core/djangoapps/user_api/views.py b/openedx/core/djangoapps/user_api/views.py index dc9ad7c5c1..5fd8db5789 100644 --- a/openedx/core/djangoapps/user_api/views.py +++ b/openedx/core/djangoapps/user_api/views.py @@ -102,6 +102,14 @@ class LoginSessionView(APIView): } ) + form_desc.add_field( + "remember", + field_type="checkbox", + label=_("Remember me"), + default=False, + required=False, + ) + return HttpResponse(form_desc.to_json(), content_type="application/json") @method_decorator(require_post_params(["email", "password"]))