Skip to content

Commit 25cc336

Browse files
authored
record when a login used a remembered device (#15710)
1 parent 1f71888 commit 25cc336

File tree

3 files changed

+152
-134
lines changed

3 files changed

+152
-134
lines changed

warehouse/accounts/views.py

+14-2
Original file line numberDiff line numberDiff line change
@@ -306,8 +306,9 @@ def login(request, redirect_field_name=REDIRECT_FIELD_NAME, _form_class=LoginFor
306306

307307
# If the user has enabled two-factor authentication and they do not have
308308
# a valid saved device.
309+
_two_factor_remembered = _check_remember_device_token(request, userid)
309310
two_factor_required = user_service.has_two_factor(userid) and (
310-
not _check_remember_device_token(request, userid)
311+
not _two_factor_remembered
311312
)
312313
if two_factor_required:
313314
two_factor_data = {"userid": userid}
@@ -330,8 +331,19 @@ def login(request, redirect_field_name=REDIRECT_FIELD_NAME, _form_class=LoginFor
330331
):
331332
redirect_to = request.route_path("manage.projects")
332333

334+
# Construct necessary two_factor information
335+
two_factor_method = (
336+
"remembered-device" if _two_factor_remembered else None
337+
)
338+
two_factor_label = two_factor_method
339+
333340
# Actually perform the login routine for our user.
334-
headers = _login_user(request, userid)
341+
headers = _login_user(
342+
request,
343+
userid,
344+
two_factor_method,
345+
two_factor_label=two_factor_label,
346+
)
335347

336348
# Now that we're logged in we'll want to redirect the user to
337349
# either where they were trying to go originally, or to the default

0 commit comments

Comments
 (0)