diff --git a/tests/unit/manage/test_views.py b/tests/unit/manage/test_views.py index b2c593a37c97..7d55956d7495 100644 --- a/tests/unit/manage/test_views.py +++ b/tests/unit/manage/test_views.py @@ -101,11 +101,16 @@ def test_manage_account(self, monkeypatch): user_service = pretend.stub() name = pretend.stub() request = pretend.stub( - find_service=lambda *a, **kw: user_service, user=pretend.stub(name=name) + find_service=lambda *a, **kw: user_service, + user=pretend.stub(name=name), + help_url=pretend.call_recorder(lambda *a, **kw: "/the/url"), ) view = views.ManageUnverifiedAccountViews(request) - assert view.manage_unverified_account() == {} + assert view.manage_unverified_account() == { + "help_url": "/the/url", + } + assert request.help_url.calls == [pretend.call(_anchor="account-recovery")] assert view.request == request assert view.user_service == user_service diff --git a/warehouse/locale/messages.pot b/warehouse/locale/messages.pot index b7d3047794af..eb8db8d7e43c 100644 --- a/warehouse/locale/messages.pot +++ b/warehouse/locale/messages.pot @@ -1660,7 +1660,7 @@ msgstr "" #: warehouse/templates/accounts/register.html:73 #: warehouse/templates/manage/account.html:336 -#: warehouse/templates/manage/unverified-account.html:221 +#: warehouse/templates/manage/unverified-account.html:227 msgid "Email address" msgstr "" @@ -3005,7 +3005,7 @@ msgstr "" #: warehouse/templates/manage/organization/history.html:23 #: warehouse/templates/manage/project/history.html:23 #: warehouse/templates/manage/team/history.html:23 -#: warehouse/templates/manage/unverified-account.html:236 +#: warehouse/templates/manage/unverified-account.html:242 msgid "Security history" msgstr "" @@ -3355,7 +3355,7 @@ msgid "Update account" msgstr "" #: warehouse/templates/manage/account.html:320 -#: warehouse/templates/manage/unverified-account.html:205 +#: warehouse/templates/manage/unverified-account.html:211 msgid "Account emails" msgstr "" @@ -3369,12 +3369,12 @@ msgid "" msgstr "" #: warehouse/templates/manage/account.html:333 -#: warehouse/templates/manage/unverified-account.html:218 +#: warehouse/templates/manage/unverified-account.html:224 msgid "Emails associated with your account" msgstr "" #: warehouse/templates/manage/account.html:337 -#: warehouse/templates/manage/unverified-account.html:222 +#: warehouse/templates/manage/unverified-account.html:228 msgid "Status" msgstr "" @@ -3440,209 +3440,209 @@ msgstr "" #: warehouse/templates/manage/account.html:513 #: warehouse/templates/manage/account.html:692 -#: warehouse/templates/manage/unverified-account.html:244 -#: warehouse/templates/manage/unverified-account.html:423 +#: warehouse/templates/manage/unverified-account.html:250 +#: warehouse/templates/manage/unverified-account.html:429 msgid "Token scope: entire account" msgstr "" #: warehouse/templates/manage/account.html:515 #: warehouse/templates/manage/account.html:694 -#: warehouse/templates/manage/unverified-account.html:246 -#: warehouse/templates/manage/unverified-account.html:425 +#: warehouse/templates/manage/unverified-account.html:252 +#: warehouse/templates/manage/unverified-account.html:431 #, python-format msgid "Token scope: Project %(project_name)s" msgstr "" #: warehouse/templates/manage/account.html:518 -#: warehouse/templates/manage/unverified-account.html:249 +#: warehouse/templates/manage/unverified-account.html:255 #, python-format msgid "Expires: %(exp)s" msgstr "" #: warehouse/templates/manage/account.html:524 -#: warehouse/templates/manage/unverified-account.html:255 +#: warehouse/templates/manage/unverified-account.html:261 msgid "Account created" msgstr "" #: warehouse/templates/manage/account.html:527 -#: warehouse/templates/manage/unverified-account.html:258 +#: warehouse/templates/manage/unverified-account.html:264 msgid "Logged in" msgstr "" #: warehouse/templates/manage/account.html:529 -#: warehouse/templates/manage/unverified-account.html:260 +#: warehouse/templates/manage/unverified-account.html:266 msgid "Two factor method:" msgstr "" #: warehouse/templates/manage/account.html:531 #: warehouse/templates/manage/project/release.html:77 -#: warehouse/templates/manage/unverified-account.html:262 +#: warehouse/templates/manage/unverified-account.html:268 msgid "None" msgstr "" #: warehouse/templates/manage/account.html:533 #: warehouse/templates/manage/manage_base.html:92 -#: warehouse/templates/manage/unverified-account.html:264 +#: warehouse/templates/manage/unverified-account.html:270 msgid "Security device (WebAuthn)" msgstr "" #: warehouse/templates/manage/account.html:535 #: warehouse/templates/manage/manage_base.html:70 -#: warehouse/templates/manage/unverified-account.html:266 +#: warehouse/templates/manage/unverified-account.html:272 msgid "" "Authentication application (TOTP)" msgstr "" #: warehouse/templates/manage/account.html:537 -#: warehouse/templates/manage/unverified-account.html:268 +#: warehouse/templates/manage/unverified-account.html:274 msgid "Recovery code" msgstr "" #: warehouse/templates/manage/account.html:542 -#: warehouse/templates/manage/unverified-account.html:273 +#: warehouse/templates/manage/unverified-account.html:279 msgid "Login failed" msgstr "" #: warehouse/templates/manage/account.html:545 -#: warehouse/templates/manage/unverified-account.html:276 +#: warehouse/templates/manage/unverified-account.html:282 msgid "- Basic Auth (Upload endpoint)" msgstr "" #: warehouse/templates/manage/account.html:550 #: warehouse/templates/manage/account.html:569 #: warehouse/templates/manage/project/history.html:272 -#: warehouse/templates/manage/unverified-account.html:281 -#: warehouse/templates/manage/unverified-account.html:300 +#: warehouse/templates/manage/unverified-account.html:287 +#: warehouse/templates/manage/unverified-account.html:306 msgid "Reason:" msgstr "" #: warehouse/templates/manage/account.html:552 #: warehouse/templates/manage/account.html:571 -#: warehouse/templates/manage/unverified-account.html:283 -#: warehouse/templates/manage/unverified-account.html:302 +#: warehouse/templates/manage/unverified-account.html:289 +#: warehouse/templates/manage/unverified-account.html:308 msgid "Incorrect Password" msgstr "" #: warehouse/templates/manage/account.html:554 -#: warehouse/templates/manage/unverified-account.html:285 +#: warehouse/templates/manage/unverified-account.html:291 msgid "Invalid two factor (TOTP)" msgstr "" #: warehouse/templates/manage/account.html:556 -#: warehouse/templates/manage/unverified-account.html:287 +#: warehouse/templates/manage/unverified-account.html:293 msgid "Invalid two factor (WebAuthn)" msgstr "" #: warehouse/templates/manage/account.html:558 #: warehouse/templates/manage/account.html:560 -#: warehouse/templates/manage/unverified-account.html:289 -#: warehouse/templates/manage/unverified-account.html:291 +#: warehouse/templates/manage/unverified-account.html:295 +#: warehouse/templates/manage/unverified-account.html:297 msgid "Invalid two factor (Recovery code)" msgstr "" #: warehouse/templates/manage/account.html:567 -#: warehouse/templates/manage/unverified-account.html:298 +#: warehouse/templates/manage/unverified-account.html:304 msgid "Session reauthentication failed" msgstr "" #: warehouse/templates/manage/account.html:578 -#: warehouse/templates/manage/unverified-account.html:309 +#: warehouse/templates/manage/unverified-account.html:315 msgid "Email added to account" msgstr "" #: warehouse/templates/manage/account.html:581 -#: warehouse/templates/manage/unverified-account.html:312 +#: warehouse/templates/manage/unverified-account.html:318 msgid "Email removed from account" msgstr "" #: warehouse/templates/manage/account.html:584 -#: warehouse/templates/manage/unverified-account.html:315 +#: warehouse/templates/manage/unverified-account.html:321 msgid "Email verified" msgstr "" #: warehouse/templates/manage/account.html:587 -#: warehouse/templates/manage/unverified-account.html:318 +#: warehouse/templates/manage/unverified-account.html:324 msgid "Email reverified" msgstr "" #: warehouse/templates/manage/account.html:591 -#: warehouse/templates/manage/unverified-account.html:322 +#: warehouse/templates/manage/unverified-account.html:328 msgid "Primary email changed" msgstr "" #: warehouse/templates/manage/account.html:593 -#: warehouse/templates/manage/unverified-account.html:324 +#: warehouse/templates/manage/unverified-account.html:330 msgid "Old primary email:" msgstr "" #: warehouse/templates/manage/account.html:594 -#: warehouse/templates/manage/unverified-account.html:325 +#: warehouse/templates/manage/unverified-account.html:331 msgid "New primary email:" msgstr "" #: warehouse/templates/manage/account.html:597 -#: warehouse/templates/manage/unverified-account.html:328 +#: warehouse/templates/manage/unverified-account.html:334 msgid "Primary email set" msgstr "" #: warehouse/templates/manage/account.html:603 -#: warehouse/templates/manage/unverified-account.html:334 +#: warehouse/templates/manage/unverified-account.html:340 msgid "Email sent" msgstr "" #: warehouse/templates/manage/account.html:605 -#: warehouse/templates/manage/unverified-account.html:336 +#: warehouse/templates/manage/unverified-account.html:342 msgid "From:" msgstr "" #: warehouse/templates/manage/account.html:606 -#: warehouse/templates/manage/unverified-account.html:337 +#: warehouse/templates/manage/unverified-account.html:343 msgid "To:" msgstr "" #: warehouse/templates/manage/account.html:607 -#: warehouse/templates/manage/unverified-account.html:338 +#: warehouse/templates/manage/unverified-account.html:344 msgid "Subject:" msgstr "" #: warehouse/templates/manage/account.html:611 -#: warehouse/templates/manage/unverified-account.html:342 +#: warehouse/templates/manage/unverified-account.html:348 msgid "Password reset requested" msgstr "" #: warehouse/templates/manage/account.html:613 -#: warehouse/templates/manage/unverified-account.html:344 +#: warehouse/templates/manage/unverified-account.html:350 msgid "Password reset attempted" msgstr "" #: warehouse/templates/manage/account.html:615 -#: warehouse/templates/manage/unverified-account.html:346 +#: warehouse/templates/manage/unverified-account.html:352 msgid "Password successfully reset" msgstr "" #: warehouse/templates/manage/account.html:617 -#: warehouse/templates/manage/unverified-account.html:348 +#: warehouse/templates/manage/unverified-account.html:354 msgid "Password successfully changed" msgstr "" #: warehouse/templates/manage/account.html:621 #: warehouse/templates/manage/account.html:626 #: warehouse/templates/manage/account/token.html:158 -#: warehouse/templates/manage/unverified-account.html:352 -#: warehouse/templates/manage/unverified-account.html:357 +#: warehouse/templates/manage/unverified-account.html:358 +#: warehouse/templates/manage/unverified-account.html:363 msgid "Project:" msgstr "" #: warehouse/templates/manage/account.html:629 -#: warehouse/templates/manage/unverified-account.html:360 +#: warehouse/templates/manage/unverified-account.html:366 msgid "Two factor authentication added" msgstr "" #: warehouse/templates/manage/account.html:632 #: warehouse/templates/manage/account.html:642 -#: warehouse/templates/manage/unverified-account.html:363 -#: warehouse/templates/manage/unverified-account.html:373 +#: warehouse/templates/manage/unverified-account.html:369 +#: warehouse/templates/manage/unverified-account.html:379 msgid "" "Method: Security device (WebAuthn)" @@ -3650,42 +3650,42 @@ msgstr "" #: warehouse/templates/manage/account.html:633 #: warehouse/templates/manage/account.html:643 -#: warehouse/templates/manage/unverified-account.html:364 -#: warehouse/templates/manage/unverified-account.html:374 +#: warehouse/templates/manage/unverified-account.html:370 +#: warehouse/templates/manage/unverified-account.html:380 msgid "Device name:" msgstr "" #: warehouse/templates/manage/account.html:635 #: warehouse/templates/manage/account.html:645 -#: warehouse/templates/manage/unverified-account.html:366 -#: warehouse/templates/manage/unverified-account.html:376 +#: warehouse/templates/manage/unverified-account.html:372 +#: warehouse/templates/manage/unverified-account.html:382 msgid "" "Method: Authentication application (TOTP)" msgstr "" #: warehouse/templates/manage/account.html:639 -#: warehouse/templates/manage/unverified-account.html:370 +#: warehouse/templates/manage/unverified-account.html:376 msgid "Two factor authentication removed" msgstr "" #: warehouse/templates/manage/account.html:650 -#: warehouse/templates/manage/unverified-account.html:381 +#: warehouse/templates/manage/unverified-account.html:387 msgid "Recovery codes generated" msgstr "" #: warehouse/templates/manage/account.html:654 -#: warehouse/templates/manage/unverified-account.html:385 +#: warehouse/templates/manage/unverified-account.html:391 msgid "Recovery codes regenerated" msgstr "" #: warehouse/templates/manage/account.html:658 -#: warehouse/templates/manage/unverified-account.html:389 +#: warehouse/templates/manage/unverified-account.html:395 msgid "Recovery code used for login" msgstr "" #: warehouse/templates/manage/account.html:664 -#: warehouse/templates/manage/unverified-account.html:395 +#: warehouse/templates/manage/unverified-account.html:401 msgid "API token added" msgstr "" @@ -3693,61 +3693,61 @@ msgstr "" #: warehouse/templates/manage/account.html:689 #: warehouse/templates/manage/project/history.html:263 #: warehouse/templates/manage/project/history.html:270 -#: warehouse/templates/manage/unverified-account.html:397 -#: warehouse/templates/manage/unverified-account.html:420 +#: warehouse/templates/manage/unverified-account.html:403 +#: warehouse/templates/manage/unverified-account.html:426 msgid "Token name:" msgstr "" #: warehouse/templates/manage/account.html:683 #: warehouse/templates/manage/project/history.html:265 -#: warehouse/templates/manage/unverified-account.html:414 +#: warehouse/templates/manage/unverified-account.html:420 msgid "API token removed" msgstr "" #: warehouse/templates/manage/account.html:684 #: warehouse/templates/manage/account.html:690 -#: warehouse/templates/manage/unverified-account.html:415 #: warehouse/templates/manage/unverified-account.html:421 +#: warehouse/templates/manage/unverified-account.html:427 msgid "Unique identifier:" msgstr "" #: warehouse/templates/manage/account.html:687 -#: warehouse/templates/manage/unverified-account.html:418 +#: warehouse/templates/manage/unverified-account.html:424 msgid "API token automatically removed for security reasons" msgstr "" #: warehouse/templates/manage/account.html:696 -#: warehouse/templates/manage/unverified-account.html:427 +#: warehouse/templates/manage/unverified-account.html:433 #, python-format msgid "Reason: Token found at public url" msgstr "" #: warehouse/templates/manage/account.html:701 -#: warehouse/templates/manage/unverified-account.html:432 +#: warehouse/templates/manage/unverified-account.html:438 #, python-format msgid "Invited to join %(organization_name)s" msgstr "" #: warehouse/templates/manage/account.html:705 -#: warehouse/templates/manage/unverified-account.html:436 +#: warehouse/templates/manage/unverified-account.html:442 #, python-format msgid "Invitation to join %(organization_name)s declined" msgstr "" #: warehouse/templates/manage/account.html:709 -#: warehouse/templates/manage/unverified-account.html:440 +#: warehouse/templates/manage/unverified-account.html:446 #, python-format msgid "Invitation to join %(organization_name)s revoked" msgstr "" #: warehouse/templates/manage/account.html:713 -#: warehouse/templates/manage/unverified-account.html:444 +#: warehouse/templates/manage/unverified-account.html:450 #, python-format msgid "Invitation to join %(organization_name)s expired" msgstr "" #: warehouse/templates/manage/account.html:722 -#: warehouse/templates/manage/unverified-account.html:453 +#: warehouse/templates/manage/unverified-account.html:459 #, python-format msgid "" "Events appear here as security-related actions occur on your account. If " @@ -3756,7 +3756,7 @@ msgid "" msgstr "" #: warehouse/templates/manage/account.html:727 -#: warehouse/templates/manage/unverified-account.html:458 +#: warehouse/templates/manage/unverified-account.html:464 msgid "Recent account activity" msgstr "" @@ -3764,7 +3764,7 @@ msgstr "" #: warehouse/templates/manage/organization/history.html:201 #: warehouse/templates/manage/project/history.html:304 #: warehouse/templates/manage/team/history.html:108 -#: warehouse/templates/manage/unverified-account.html:460 +#: warehouse/templates/manage/unverified-account.html:466 msgid "Event" msgstr "" @@ -3775,25 +3775,25 @@ msgstr "" #: warehouse/templates/manage/project/history.html:314 #: warehouse/templates/manage/team/history.html:109 #: warehouse/templates/manage/team/history.html:118 -#: warehouse/templates/manage/unverified-account.html:461 +#: warehouse/templates/manage/unverified-account.html:467 msgid "Time" msgstr "" #: warehouse/templates/manage/account.html:731 #: warehouse/templates/manage/organization/history.html:203 #: warehouse/templates/manage/team/history.html:110 -#: warehouse/templates/manage/unverified-account.html:462 +#: warehouse/templates/manage/unverified-account.html:468 msgid "Additional Info" msgstr "" #: warehouse/templates/manage/account.html:738 -#: warehouse/templates/manage/unverified-account.html:469 +#: warehouse/templates/manage/unverified-account.html:475 msgid "Date / time" msgstr "" #: warehouse/templates/manage/account.html:742 #: warehouse/templates/manage/organization/history.html:215 -#: warehouse/templates/manage/unverified-account.html:473 +#: warehouse/templates/manage/unverified-account.html:479 msgid "Location Info" msgstr "" @@ -3801,12 +3801,12 @@ msgstr "" #: warehouse/templates/manage/organization/history.html:217 #: warehouse/templates/manage/project/history.html:320 #: warehouse/templates/manage/team/history.html:124 -#: warehouse/templates/manage/unverified-account.html:475 +#: warehouse/templates/manage/unverified-account.html:481 msgid "Device Info" msgstr "" #: warehouse/templates/manage/account.html:752 -#: warehouse/templates/manage/unverified-account.html:483 +#: warehouse/templates/manage/unverified-account.html:489 msgid "Events will appear here as security-related actions occur on your account." msgstr "" @@ -4439,7 +4439,14 @@ msgid "" "to your account." msgstr "" -#: warehouse/templates/manage/unverified-account.html:207 +#: warehouse/templates/manage/unverified-account.html:203 +#, python-format +msgid "" +"If you cannot verify a primary email address, please see %(help_url)s." +msgstr "" + +#: warehouse/templates/manage/unverified-account.html:213 msgid "" "You must have at least one Verified email " diff --git a/warehouse/manage/views/__init__.py b/warehouse/manage/views/__init__.py index debdc03c225d..31553e891695 100644 --- a/warehouse/manage/views/__init__.py +++ b/warehouse/manage/views/__init__.py @@ -213,7 +213,7 @@ class ManageUnverifiedAccountViews(ManageAccountMixin): @view_config(request_method="GET") def manage_unverified_account(self): - return {} + return {"help_url": self.request.help_url(_anchor="account-recovery")} @view_defaults( diff --git a/warehouse/templates/manage/unverified-account.html b/warehouse/templates/manage/unverified-account.html index a6f32e08866f..2893caa2766b 100644 --- a/warehouse/templates/manage/unverified-account.html +++ b/warehouse/templates/manage/unverified-account.html @@ -199,6 +199,12 @@
+ {% trans help_url=help_url %} + If you cannot verify a primary email address, + please see {{ help_url }}. + {% endtrans %} +