Skip to content

Commit 5574f8a

Browse files
authored
Ensure formdata gets a multidict (#16741)
1 parent a908ffd commit 5574f8a

File tree

2 files changed

+62
-55
lines changed

2 files changed

+62
-55
lines changed

warehouse/locale/messages.pot

Lines changed: 42 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@ msgstr ""
151151
msgid "Successful WebAuthn assertion"
152152
msgstr ""
153153

154-
#: warehouse/accounts/views.py:569 warehouse/manage/views/__init__.py:865
154+
#: warehouse/accounts/views.py:569 warehouse/manage/views/__init__.py:870
155155
msgid "Recovery code accepted. The supplied code cannot be used again."
156156
msgstr ""
157157

@@ -285,7 +285,7 @@ msgid "You are now ${role} of the '${project_name}' project."
285285
msgstr ""
286286

287287
#: warehouse/accounts/views.py:1548 warehouse/accounts/views.py:1791
288-
#: warehouse/manage/views/__init__.py:1242
288+
#: warehouse/manage/views/__init__.py:1249
289289
msgid ""
290290
"Trusted publishing is temporarily disabled. See https://pypi.org/help"
291291
"#admin-intervention for details."
@@ -305,19 +305,19 @@ msgstr ""
305305
msgid "You can't register more than 3 pending trusted publishers at once."
306306
msgstr ""
307307

308-
#: warehouse/accounts/views.py:1614 warehouse/manage/views/__init__.py:1297
309-
#: warehouse/manage/views/__init__.py:1410
310-
#: warehouse/manage/views/__init__.py:1522
311-
#: warehouse/manage/views/__init__.py:1632
308+
#: warehouse/accounts/views.py:1614 warehouse/manage/views/__init__.py:1304
309+
#: warehouse/manage/views/__init__.py:1417
310+
#: warehouse/manage/views/__init__.py:1529
311+
#: warehouse/manage/views/__init__.py:1639
312312
msgid ""
313313
"There have been too many attempted trusted publisher registrations. Try "
314314
"again later."
315315
msgstr ""
316316

317-
#: warehouse/accounts/views.py:1625 warehouse/manage/views/__init__.py:1311
318-
#: warehouse/manage/views/__init__.py:1424
319-
#: warehouse/manage/views/__init__.py:1536
320-
#: warehouse/manage/views/__init__.py:1646
317+
#: warehouse/accounts/views.py:1625 warehouse/manage/views/__init__.py:1318
318+
#: warehouse/manage/views/__init__.py:1431
319+
#: warehouse/manage/views/__init__.py:1543
320+
#: warehouse/manage/views/__init__.py:1653
321321
msgid "The trusted publisher could not be registered"
322322
msgstr ""
323323

@@ -427,130 +427,130 @@ msgstr ""
427427
msgid "This team name has already been used. Choose a different team name."
428428
msgstr ""
429429

430-
#: warehouse/manage/views/__init__.py:281
430+
#: warehouse/manage/views/__init__.py:282
431431
msgid "Account details updated"
432432
msgstr ""
433433

434-
#: warehouse/manage/views/__init__.py:311
434+
#: warehouse/manage/views/__init__.py:312
435435
msgid "Email ${email_address} added - check your email for a verification link"
436436
msgstr ""
437437

438-
#: warehouse/manage/views/__init__.py:813
438+
#: warehouse/manage/views/__init__.py:818
439439
msgid "Recovery codes already generated"
440440
msgstr ""
441441

442-
#: warehouse/manage/views/__init__.py:814
442+
#: warehouse/manage/views/__init__.py:819
443443
msgid "Generating new recovery codes will invalidate your existing codes."
444444
msgstr ""
445445

446-
#: warehouse/manage/views/__init__.py:923
446+
#: warehouse/manage/views/__init__.py:928
447447
msgid "Verify your email to create an API token."
448448
msgstr ""
449449

450-
#: warehouse/manage/views/__init__.py:1021
450+
#: warehouse/manage/views/__init__.py:1028
451451
msgid "API Token does not exist."
452452
msgstr ""
453453

454-
#: warehouse/manage/views/__init__.py:1053
454+
#: warehouse/manage/views/__init__.py:1060
455455
msgid "Invalid credentials. Try again"
456456
msgstr ""
457457

458-
#: warehouse/manage/views/__init__.py:1278
458+
#: warehouse/manage/views/__init__.py:1285
459459
msgid ""
460460
"GitHub-based trusted publishing is temporarily disabled. See "
461461
"https://pypi.org/help#admin-intervention for details."
462462
msgstr ""
463463

464-
#: warehouse/manage/views/__init__.py:1391
464+
#: warehouse/manage/views/__init__.py:1398
465465
msgid ""
466466
"GitLab-based trusted publishing is temporarily disabled. See "
467467
"https://pypi.org/help#admin-intervention for details."
468468
msgstr ""
469469

470-
#: warehouse/manage/views/__init__.py:1503
470+
#: warehouse/manage/views/__init__.py:1510
471471
msgid ""
472472
"Google-based trusted publishing is temporarily disabled. See "
473473
"https://pypi.org/help#admin-intervention for details."
474474
msgstr ""
475475

476-
#: warehouse/manage/views/__init__.py:1612
476+
#: warehouse/manage/views/__init__.py:1619
477477
msgid ""
478478
"ActiveState-based trusted publishing is temporarily disabled. See "
479479
"https://pypi.org/help#admin-intervention for details."
480480
msgstr ""
481481

482-
#: warehouse/manage/views/__init__.py:1847
483-
#: warehouse/manage/views/__init__.py:2148
484-
#: warehouse/manage/views/__init__.py:2256
482+
#: warehouse/manage/views/__init__.py:1854
483+
#: warehouse/manage/views/__init__.py:2155
484+
#: warehouse/manage/views/__init__.py:2263
485485
msgid ""
486486
"Project deletion temporarily disabled. See https://pypi.org/help#admin-"
487487
"intervention for details."
488488
msgstr ""
489489

490-
#: warehouse/manage/views/__init__.py:1979
491-
#: warehouse/manage/views/__init__.py:2064
492-
#: warehouse/manage/views/__init__.py:2165
493-
#: warehouse/manage/views/__init__.py:2265
490+
#: warehouse/manage/views/__init__.py:1986
491+
#: warehouse/manage/views/__init__.py:2071
492+
#: warehouse/manage/views/__init__.py:2172
493+
#: warehouse/manage/views/__init__.py:2272
494494
msgid "Confirm the request"
495495
msgstr ""
496496

497-
#: warehouse/manage/views/__init__.py:1991
497+
#: warehouse/manage/views/__init__.py:1998
498498
msgid "Could not yank release - "
499499
msgstr ""
500500

501-
#: warehouse/manage/views/__init__.py:2076
501+
#: warehouse/manage/views/__init__.py:2083
502502
msgid "Could not un-yank release - "
503503
msgstr ""
504504

505-
#: warehouse/manage/views/__init__.py:2177
505+
#: warehouse/manage/views/__init__.py:2184
506506
msgid "Could not delete release - "
507507
msgstr ""
508508

509-
#: warehouse/manage/views/__init__.py:2277
509+
#: warehouse/manage/views/__init__.py:2284
510510
msgid "Could not find file"
511511
msgstr ""
512512

513-
#: warehouse/manage/views/__init__.py:2281
513+
#: warehouse/manage/views/__init__.py:2288
514514
msgid "Could not delete file - "
515515
msgstr ""
516516

517-
#: warehouse/manage/views/__init__.py:2431
517+
#: warehouse/manage/views/__init__.py:2438
518518
msgid "Team '${team_name}' already has ${role_name} role for project"
519519
msgstr ""
520520

521-
#: warehouse/manage/views/__init__.py:2538
521+
#: warehouse/manage/views/__init__.py:2545
522522
msgid "User '${username}' already has ${role_name} role for project"
523523
msgstr ""
524524

525-
#: warehouse/manage/views/__init__.py:2605
525+
#: warehouse/manage/views/__init__.py:2612
526526
msgid "${username} is now ${role} of the '${project_name}' project."
527527
msgstr ""
528528

529-
#: warehouse/manage/views/__init__.py:2637
529+
#: warehouse/manage/views/__init__.py:2644
530530
msgid ""
531531
"User '${username}' does not have a verified primary email address and "
532532
"cannot be added as a ${role_name} for project"
533533
msgstr ""
534534

535-
#: warehouse/manage/views/__init__.py:2650
535+
#: warehouse/manage/views/__init__.py:2657
536536
#: warehouse/manage/views/organizations.py:878
537537
msgid "User '${username}' already has an active invite. Please try again later."
538538
msgstr ""
539539

540-
#: warehouse/manage/views/__init__.py:2715
540+
#: warehouse/manage/views/__init__.py:2722
541541
#: warehouse/manage/views/organizations.py:943
542542
msgid "Invitation sent to '${username}'"
543543
msgstr ""
544544

545-
#: warehouse/manage/views/__init__.py:2748
545+
#: warehouse/manage/views/__init__.py:2755
546546
msgid "Could not find role invitation."
547547
msgstr ""
548548

549-
#: warehouse/manage/views/__init__.py:2759
549+
#: warehouse/manage/views/__init__.py:2766
550550
msgid "Invitation already expired."
551551
msgstr ""
552552

553-
#: warehouse/manage/views/__init__.py:2791
553+
#: warehouse/manage/views/__init__.py:2798
554554
#: warehouse/manage/views/organizations.py:1130
555555
msgid "Invitation revoked from '${username}'."
556556
msgstr ""

warehouse/manage/views/__init__.py

Lines changed: 20 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
from sqlalchemy.orm import joinedload
3030
from venusian import lift
3131
from webauthn.helpers import bytes_to_base64url
32+
from webob.multidict import MultiDict
3233

3334
import warehouse.utils.otp as otp
3435

@@ -451,10 +452,12 @@ def delete_account(self):
451452
return self.default_response
452453

453454
form = ConfirmPasswordForm(
454-
formdata={
455-
"password": confirm_password,
456-
"username": self.request.user.username,
457-
},
455+
formdata=MultiDict(
456+
{
457+
"password": confirm_password,
458+
"username": self.request.user.username,
459+
}
460+
),
458461
request=self.request,
459462
user_service=self.user_service,
460463
)
@@ -631,10 +634,12 @@ def delete_totp(self):
631634
return HTTPSeeOther(self.request.route_path("manage.account"))
632635

633636
form = DeleteTOTPForm(
634-
formdata={
635-
"password": self.request.POST["confirm_password"],
636-
"username": self.request.user.username,
637-
},
637+
formdata=MultiDict(
638+
{
639+
"password": self.request.POST["confirm_password"],
640+
"username": self.request.user.username,
641+
}
642+
),
638643
request=self.request,
639644
user_service=self.user_service,
640645
)
@@ -1003,11 +1008,13 @@ def create_macaroon(self):
10031008
)
10041009
def delete_macaroon(self):
10051010
form = DeleteMacaroonForm(
1006-
formdata={
1007-
"password": self.request.POST["confirm_password"],
1008-
"username": self.request.user.username,
1009-
"macaroon_id": self.request.POST["macaroon_id"],
1010-
},
1011+
formdata=MultiDict(
1012+
{
1013+
"password": self.request.POST["confirm_password"],
1014+
"username": self.request.user.username,
1015+
"macaroon_id": self.request.POST["macaroon_id"],
1016+
}
1017+
),
10111018
request=self.request,
10121019
macaroon_service=self.macaroon_service,
10131020
user_service=self.user_service,

0 commit comments

Comments
 (0)