diff --git a/package-lock.json b/package-lock.json index a27c60281267..b339eea380e0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,5 +1,5 @@ { - "name": "src", + "name": "warehouse", "lockfileVersion": 3, "requires": true, "packages": { @@ -110,7 +110,6 @@ "integrity": "sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/code-frame": "^7.27.1", "@babel/generator": "^7.28.5", @@ -1876,7 +1875,6 @@ "integrity": "sha512-FA5LmZVF1VziNc0bIdCSA1IoSVnDCqE8HJIZZv2/W8YmoAM50+tnUgJR/gQZwEeIMleuIOnRnHA/UaZRNeV4iQ==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@keyv/serialize": "^1.1.1" } @@ -1990,7 +1988,6 @@ } ], "license": "MIT", - "peer": true, "engines": { "node": ">=18" }, @@ -2034,7 +2031,6 @@ } ], "license": "MIT", - "peer": true, "engines": { "node": ">=18" } @@ -2346,8 +2342,7 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/@hotwired/stimulus/-/stimulus-3.2.2.tgz", "integrity": "sha512-eGeIqNOQpXoPAIP7tC1+1Yc1yl1xnwYqg+3mzqxyrbE5pg5YFBZcA6YoTiByJB6DKAEsiWtl6tjTJS4IYtbB7A==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/@hotwired/stimulus-webpack-helpers": { "version": "1.0.1", @@ -4651,7 +4646,6 @@ "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "dev": true, "license": "MIT", - "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -5278,7 +5272,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "baseline-browser-mapping": "^2.9.0", "caniuse-lite": "^1.0.30001759", @@ -7056,7 +7049,6 @@ "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", @@ -9725,8 +9717,7 @@ "version": "3.7.1", "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.7.1.tgz", "integrity": "sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/jquery-knob-chif": { "version": "1.2.13", @@ -9813,7 +9804,6 @@ "integrity": "sha512-Cvc9WUhxSMEo4McES3P7oK3QaXldCfNWp7pl2NNeiIFlCoLr3kfq9kb1fxftiwk1FLV7CvpvDfonxtzUDeSOPg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "cssstyle": "^4.2.1", "data-urls": "^5.0.0", @@ -10889,7 +10879,6 @@ "integrity": "sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ==", "deprecated": "You can find the new Popper v2 at @popperjs/core, this package is dedicated to the legacy v1", "license": "MIT", - "peer": true, "funding": { "type": "opencollective", "url": "https://opencollective.com/popperjs" @@ -10929,7 +10918,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", @@ -11540,7 +11528,6 @@ "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -12606,7 +12593,6 @@ "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", @@ -13179,7 +13165,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "@csstools/css-parser-algorithms": "^3.0.5", "@csstools/css-syntax-patches-for-csstree": "^1.0.19", @@ -13703,6 +13688,7 @@ "resolved": "https://registry.npmjs.org/tempusdominus-core/-/tempusdominus-core-5.19.3.tgz", "integrity": "sha512-WXBVXcBG/hErB6u9gdUs+vzANvCU1kd1ykzL4kolPB3h1OEv20OKUW5qz1iynxyqRFPa1NWY9gwRu5d+MjXEuQ==", "license": "MIT", + "peer": true, "dependencies": { "jquery": "^3.6.0", "moment": "~2.29.2", @@ -13719,6 +13705,7 @@ "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz", "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==", "license": "MIT", + "peer": true, "engines": { "node": "*" } @@ -14258,7 +14245,6 @@ "integrity": "sha512-Qphch25abbMNtekmEGJmeRUhLDbe+QfiWTiqpKYkpCOWY64v9eyl+KRRLmqOFA2AvKPpc9DC6+u2n76tQLBoaA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@types/eslint-scope": "^3.7.7", "@types/estree": "^1.0.8", @@ -14308,7 +14294,6 @@ "integrity": "sha512-MfwFQ6SfwinsUVi0rNJm7rHZ31GyTcpVE5pgVA3hwFRb7COD4TzjUUwhGWKfO50+xdc2MQPuEBBJoqIMGt3JDw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@discoveryjs/json-ext": "^0.6.1", "@webpack-cli/configtest": "^3.0.1", diff --git a/warehouse/accounts/views.py b/warehouse/accounts/views.py index cfc375107b09..dbbe8f7e856d 100644 --- a/warehouse/accounts/views.py +++ b/warehouse/accounts/views.py @@ -414,10 +414,12 @@ def two_factor_and_totp_validate(request, _form_class=TOTPAuthenticationForm): # We've seen this device before for this user and they've # confirmed it, log in the user two_factor_method = "totp" - _login_user(request, userid, two_factor_method, two_factor_label="totp") + headers = _login_user( + request, userid, two_factor_method, two_factor_label="totp" + ) user_service.update_user(userid, last_totp_value=form.totp_value.data) - resp = HTTPSeeOther(redirect_to) + resp = HTTPSeeOther(redirect_to, headers=dict(headers)) _set_userid_insecure_cookie(resp, userid) if not two_factor_state.get("has_recovery_codes", False): @@ -618,7 +620,9 @@ def recovery_code(request, _form_class=RecoveryCodeAuthenticationForm): if user_service.device_is_known(userid, request): # We've seen this device before for this user and they've # confirmed it, log in the user - _login_user(request, userid, two_factor_method="recovery-code") + headers = _login_user( + request, userid, two_factor_method="recovery-code" + ) user = user_service.get_user(userid) user.record_event( @@ -634,7 +638,7 @@ def recovery_code(request, _form_class=RecoveryCodeAuthenticationForm): queue="success", ) - resp = HTTPSeeOther(redirect_to) + resp = HTTPSeeOther(redirect_to, headers=dict(headers)) _set_userid_insecure_cookie(resp, userid) return resp diff --git a/warehouse/locale/messages.pot b/warehouse/locale/messages.pot index 1c06ae03ff22..f57f571e1fc2 100644 --- a/warehouse/locale/messages.pot +++ b/warehouse/locale/messages.pot @@ -150,195 +150,195 @@ msgid "" " ${ip})" msgstr "" -#: warehouse/accounts/views.py:384 warehouse/accounts/views.py:454 -#: warehouse/accounts/views.py:456 warehouse/accounts/views.py:485 -#: warehouse/accounts/views.py:487 warehouse/accounts/views.py:603 +#: warehouse/accounts/views.py:384 warehouse/accounts/views.py:456 +#: warehouse/accounts/views.py:458 warehouse/accounts/views.py:487 +#: warehouse/accounts/views.py:489 warehouse/accounts/views.py:605 msgid "Invalid or expired two factor login." msgstr "" -#: warehouse/accounts/views.py:448 +#: warehouse/accounts/views.py:450 msgid "Already authenticated" msgstr "" -#: warehouse/accounts/views.py:522 +#: warehouse/accounts/views.py:524 msgid "Successful WebAuthn assertion" msgstr "" -#: warehouse/accounts/views.py:631 warehouse/manage/views/__init__.py:855 +#: warehouse/accounts/views.py:633 warehouse/manage/views/__init__.py:855 msgid "Recovery code accepted. The supplied code cannot be used again." msgstr "" -#: warehouse/accounts/views.py:730 +#: warehouse/accounts/views.py:732 msgid "" "New user registration temporarily disabled. See https://pypi.org/help" "#admin-intervention for details." msgstr "" -#: warehouse/accounts/views.py:899 +#: warehouse/accounts/views.py:901 msgid "Expired token: request a new password reset link" msgstr "" -#: warehouse/accounts/views.py:901 +#: warehouse/accounts/views.py:903 msgid "Invalid token: request a new password reset link" msgstr "" -#: warehouse/accounts/views.py:903 warehouse/accounts/views.py:1012 -#: warehouse/accounts/views.py:1077 warehouse/accounts/views.py:1183 -#: warehouse/accounts/views.py:1352 +#: warehouse/accounts/views.py:905 warehouse/accounts/views.py:1014 +#: warehouse/accounts/views.py:1079 warehouse/accounts/views.py:1185 +#: warehouse/accounts/views.py:1354 msgid "Invalid token: no token supplied" msgstr "" -#: warehouse/accounts/views.py:907 +#: warehouse/accounts/views.py:909 msgid "Invalid token: not a password reset token" msgstr "" -#: warehouse/accounts/views.py:912 warehouse/accounts/views.py:1021 +#: warehouse/accounts/views.py:914 warehouse/accounts/views.py:1023 msgid "Invalid token: user not found" msgstr "" -#: warehouse/accounts/views.py:923 +#: warehouse/accounts/views.py:925 msgid "Invalid token: user has logged in since this token was requested" msgstr "" -#: warehouse/accounts/views.py:941 +#: warehouse/accounts/views.py:943 msgid "" "Invalid token: password has already been changed since this token was " "requested" msgstr "" -#: warehouse/accounts/views.py:972 +#: warehouse/accounts/views.py:974 msgid "You have reset your password" msgstr "" -#: warehouse/accounts/views.py:1008 +#: warehouse/accounts/views.py:1010 msgid "Expired token: please try to login again" msgstr "" -#: warehouse/accounts/views.py:1010 +#: warehouse/accounts/views.py:1012 msgid "Invalid token: please try to login again" msgstr "" -#: warehouse/accounts/views.py:1016 +#: warehouse/accounts/views.py:1018 msgid "Invalid token: not a login confirmation token" msgstr "" -#: warehouse/accounts/views.py:1031 +#: warehouse/accounts/views.py:1033 msgid "Invalid login attempt." msgstr "" -#: warehouse/accounts/views.py:1036 +#: warehouse/accounts/views.py:1038 msgid "" "Device details didn't match, please try again from the device you " "originally used to log in." msgstr "" -#: warehouse/accounts/views.py:1047 +#: warehouse/accounts/views.py:1049 msgid "Your login has been confirmed and this device is now recognized." msgstr "" -#: warehouse/accounts/views.py:1073 +#: warehouse/accounts/views.py:1075 msgid "Expired token: request a new email verification link" msgstr "" -#: warehouse/accounts/views.py:1075 +#: warehouse/accounts/views.py:1077 msgid "Invalid token: request a new email verification link" msgstr "" -#: warehouse/accounts/views.py:1081 +#: warehouse/accounts/views.py:1083 msgid "Invalid token: not an email verification token" msgstr "" -#: warehouse/accounts/views.py:1090 +#: warehouse/accounts/views.py:1092 msgid "Email not found" msgstr "" -#: warehouse/accounts/views.py:1093 +#: warehouse/accounts/views.py:1095 msgid "Email already verified" msgstr "" -#: warehouse/accounts/views.py:1113 +#: warehouse/accounts/views.py:1115 msgid "You can now set this email as your primary address" msgstr "" -#: warehouse/accounts/views.py:1116 +#: warehouse/accounts/views.py:1118 msgid "This is your primary address" msgstr "" -#: warehouse/accounts/views.py:1122 +#: warehouse/accounts/views.py:1124 #, python-brace-format msgid "Email address ${email_address} verified. ${confirm_message}." msgstr "" -#: warehouse/accounts/views.py:1179 +#: warehouse/accounts/views.py:1181 msgid "Expired token: request a new organization invitation" msgstr "" -#: warehouse/accounts/views.py:1181 +#: warehouse/accounts/views.py:1183 msgid "Invalid token: request a new organization invitation" msgstr "" -#: warehouse/accounts/views.py:1187 +#: warehouse/accounts/views.py:1189 msgid "Invalid token: not an organization invitation token" msgstr "" -#: warehouse/accounts/views.py:1191 +#: warehouse/accounts/views.py:1193 msgid "Organization invitation is not valid." msgstr "" -#: warehouse/accounts/views.py:1200 +#: warehouse/accounts/views.py:1202 msgid "Organization invitation no longer exists." msgstr "" -#: warehouse/accounts/views.py:1252 +#: warehouse/accounts/views.py:1254 #, python-brace-format msgid "Invitation for '${organization_name}' is declined." msgstr "" -#: warehouse/accounts/views.py:1315 +#: warehouse/accounts/views.py:1317 #, python-brace-format msgid "You are now ${role} of the '${organization_name}' organization." msgstr "" -#: warehouse/accounts/views.py:1348 +#: warehouse/accounts/views.py:1350 msgid "Expired token: request a new project role invitation" msgstr "" -#: warehouse/accounts/views.py:1350 +#: warehouse/accounts/views.py:1352 msgid "Invalid token: request a new project role invitation" msgstr "" -#: warehouse/accounts/views.py:1356 +#: warehouse/accounts/views.py:1358 msgid "Invalid token: not a collaboration invitation token" msgstr "" -#: warehouse/accounts/views.py:1360 +#: warehouse/accounts/views.py:1362 msgid "Role invitation is not valid." msgstr "" -#: warehouse/accounts/views.py:1367 +#: warehouse/accounts/views.py:1369 msgid "Invalid token: project does not exist" msgstr "" -#: warehouse/accounts/views.py:1378 +#: warehouse/accounts/views.py:1380 msgid "Role invitation no longer exists." msgstr "" -#: warehouse/accounts/views.py:1410 +#: warehouse/accounts/views.py:1412 #, python-brace-format msgid "Invitation for '${project_name}' is declined." msgstr "" -#: warehouse/accounts/views.py:1476 +#: warehouse/accounts/views.py:1478 #, python-brace-format msgid "You are now ${role} of the '${project_name}' project." msgstr "" -#: warehouse/accounts/views.py:1588 +#: warehouse/accounts/views.py:1590 #, python-brace-format msgid "Please review our updated Terms of Service." msgstr "" -#: warehouse/accounts/views.py:1800 warehouse/accounts/views.py:2054 +#: warehouse/accounts/views.py:1802 warehouse/accounts/views.py:2056 #: warehouse/manage/views/oidc_publishers.py:126 #: warehouse/manage/views/organizations.py:1805 msgid "" @@ -346,22 +346,22 @@ msgid "" "#admin-intervention for details." msgstr "" -#: warehouse/accounts/views.py:1821 +#: warehouse/accounts/views.py:1823 #: warehouse/manage/views/organizations.py:1828 msgid "disabled. See https://pypi.org/help#admin-intervention for details." msgstr "" -#: warehouse/accounts/views.py:1837 +#: warehouse/accounts/views.py:1839 msgid "" "You must have a verified email in order to register a pending trusted " "publisher. See https://pypi.org/help#openid-connect for details." msgstr "" -#: warehouse/accounts/views.py:1850 +#: warehouse/accounts/views.py:1852 msgid "You can't register more than 3 pending trusted publishers at once." msgstr "" -#: warehouse/accounts/views.py:1865 +#: warehouse/accounts/views.py:1867 #: warehouse/manage/views/oidc_publishers.py:308 #: warehouse/manage/views/oidc_publishers.py:423 #: warehouse/manage/views/oidc_publishers.py:539 @@ -371,7 +371,7 @@ msgid "" "again later." msgstr "" -#: warehouse/accounts/views.py:1875 +#: warehouse/accounts/views.py:1877 #: warehouse/manage/views/oidc_publishers.py:321 #: warehouse/manage/views/oidc_publishers.py:436 #: warehouse/manage/views/oidc_publishers.py:552 @@ -380,23 +380,23 @@ msgstr "" msgid "The trusted publisher could not be registered" msgstr "" -#: warehouse/accounts/views.py:1890 +#: warehouse/accounts/views.py:1892 msgid "" "This trusted publisher has already been registered. Please contact PyPI's" " admins if this wasn't intentional." msgstr "" -#: warehouse/accounts/views.py:1924 +#: warehouse/accounts/views.py:1926 #: warehouse/manage/views/organizations.py:1893 msgid "Registered a new pending publisher to create " msgstr "" -#: warehouse/accounts/views.py:2067 warehouse/accounts/views.py:2080 -#: warehouse/accounts/views.py:2087 +#: warehouse/accounts/views.py:2069 warehouse/accounts/views.py:2082 +#: warehouse/accounts/views.py:2089 msgid "Invalid publisher ID" msgstr "" -#: warehouse/accounts/views.py:2094 +#: warehouse/accounts/views.py:2096 msgid "Removed trusted publisher for project " msgstr ""