Skip to content

Commit 5eba9cb

Browse files
authored
Revert "Return Macaroon alongside User in MacaroonSecurityPolicy.identity (pypi#15581)" (pypi#15588)
This reverts commit 862a451.
1 parent 862a451 commit 5eba9cb

File tree

10 files changed

+20
-96
lines changed

10 files changed

+20
-96
lines changed

tests/unit/accounts/test_core.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
from warehouse.accounts.tasks import compute_user_metrics
3232
from warehouse.oidc.interfaces import SignedClaims
3333
from warehouse.oidc.models import OIDCPublisher
34-
from warehouse.oidc.utils import PublisherTokenContext
34+
from warehouse.oidc.utils import OIDCContext
3535
from warehouse.rate_limiting import IRateLimiter, RateLimit
3636

3737
from ...common.db.accounts import UserFactory
@@ -62,7 +62,7 @@ def test_with_oidc_publisher(self, db_request):
6262
assert isinstance(publisher, OIDCPublisher)
6363
claims = SignedClaims({"foo": "bar"})
6464

65-
request = pretend.stub(identity=PublisherTokenContext(publisher, claims))
65+
request = pretend.stub(identity=OIDCContext(publisher, claims))
6666

6767
assert accounts._oidc_publisher(request) is publisher
6868
assert accounts._oidc_claims(request) is claims

tests/unit/forklift/test_legacy.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636
from warehouse.forklift import legacy
3737
from warehouse.metrics import IMetricsService
3838
from warehouse.oidc.interfaces import SignedClaims
39-
from warehouse.oidc.utils import PublisherTokenContext
39+
from warehouse.oidc.utils import OIDCContext
4040
from warehouse.packaging.interfaces import IFileStorage, IProjectService
4141
from warehouse.packaging.models import (
4242
Dependency,
@@ -3354,7 +3354,7 @@ def test_upload_succeeds_creates_release(
33543354
else:
33553355
publisher = GitHubPublisherFactory.create(projects=[project])
33563356
claims = {"sha": "somesha"}
3357-
identity = PublisherTokenContext(publisher, SignedClaims(claims))
3357+
identity = OIDCContext(publisher, SignedClaims(claims))
33583358
db_request.oidc_publisher = identity.publisher
33593359
db_request.oidc_claims = identity.claims
33603360

tests/unit/macaroons/test_caveats.py

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636
verify,
3737
)
3838
from warehouse.macaroons.caveats._core import _CaveatRegistry
39-
from warehouse.oidc.utils import PublisherTokenContext
39+
from warehouse.oidc.utils import OIDCContext
4040

4141
from ...common.db.accounts import UserFactory
4242
from ...common.db.oidc import GitHubPublisherFactory
@@ -295,7 +295,7 @@ def test_verify_no_identity(self):
295295
)
296296

297297
def test_verify_invalid_publisher_id(self, db_request):
298-
identity = PublisherTokenContext(GitHubPublisherFactory.create(), None)
298+
identity = OIDCContext(GitHubPublisherFactory.create(), None)
299299
request = pretend.stub(identity=identity)
300300
request.oidc_publisher = _oidc_publisher(request)
301301

@@ -307,7 +307,7 @@ def test_verify_invalid_publisher_id(self, db_request):
307307
)
308308

309309
def test_verify_invalid_context(self, db_request):
310-
identity = PublisherTokenContext(GitHubPublisherFactory.create(), None)
310+
identity = OIDCContext(GitHubPublisherFactory.create(), None)
311311
request = pretend.stub(identity=identity)
312312
request.oidc_publisher = _oidc_publisher(request)
313313

@@ -322,9 +322,7 @@ def test_verify_invalid_project(self, db_request):
322322

323323
# This OIDC publisher is only registered to "foobar", so it should
324324
# not verify a caveat presented for "foobaz".
325-
identity = PublisherTokenContext(
326-
GitHubPublisherFactory.create(projects=[foobar]), None
327-
)
325+
identity = OIDCContext(GitHubPublisherFactory.create(projects=[foobar]), None)
328326
request = pretend.stub(identity=identity)
329327
request.oidc_publisher = _oidc_publisher(request)
330328
caveat = OIDCPublisher(oidc_publisher_id=str(request.oidc_publisher.id))
@@ -338,9 +336,7 @@ def test_verify_ok(self, db_request):
338336

339337
# This OIDC publisher is only registered to "foobar", so it should
340338
# not verify a caveat presented for "foobaz".
341-
identity = PublisherTokenContext(
342-
GitHubPublisherFactory.create(projects=[foobar]), None
343-
)
339+
identity = OIDCContext(GitHubPublisherFactory.create(projects=[foobar]), None)
344340
request = pretend.stub(identity=identity)
345341
request.oidc_publisher = _oidc_publisher(request)
346342
caveat = OIDCPublisher(oidc_publisher_id=str(request.oidc_publisher.id))

tests/unit/macaroons/test_security_policy.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,12 @@
2020
from zope.interface.verify import verifyClass
2121

2222
from warehouse.accounts.interfaces import IUserService
23-
from warehouse.accounts.utils import UserTokenContext
2423
from warehouse.authnz import Permissions
2524
from warehouse.macaroons import security_policy
2625
from warehouse.macaroons.interfaces import IMacaroonService
2726
from warehouse.macaroons.services import InvalidMacaroonError
2827
from warehouse.oidc.interfaces import SignedClaims
29-
from warehouse.oidc.utils import PublisherTokenContext
28+
from warehouse.oidc.utils import OIDCContext
3029

3130

3231
@pytest.mark.parametrize(
@@ -215,7 +214,7 @@ def test_identity_user(self, monkeypatch):
215214
),
216215
)
217216

218-
assert policy.identity(request) == UserTokenContext(user, macaroon)
217+
assert policy.identity(request) is user
219218
assert extract_http_macaroon.calls == [pretend.call(request)]
220219
assert request.find_service.calls == [
221220
pretend.call(IMacaroonService, context=None),
@@ -259,7 +258,7 @@ def test_identity_oidc_publisher(self, monkeypatch):
259258
identity = policy.identity(request)
260259
assert identity
261260
assert identity.publisher is oidc_publisher
262-
assert identity == PublisherTokenContext(
261+
assert identity == OIDCContext(
263262
oidc_publisher, SignedClaims(oidc_additional["oidc"])
264263
)
265264

tests/unit/macaroons/test_utils.py

Lines changed: 0 additions & 24 deletions
This file was deleted.

tests/unit/oidc/test_utils.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -238,7 +238,7 @@ def test_find_publisher_by_issuer_activestate(
238238

239239
def test_oidc_context_principals():
240240
assert principals_for(
241-
utils.PublisherTokenContext(publisher=pretend.stub(id=17), claims=None)
241+
utils.OIDCContext(publisher=pretend.stub(id=17), claims=None)
242242
) == [
243243
Authenticated,
244244
"oidc:17",

warehouse/accounts/__init__.py

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434
from warehouse.accounts.tasks import compute_user_metrics
3535
from warehouse.admin.flags import AdminFlagValue
3636
from warehouse.macaroons.security_policy import MacaroonSecurityPolicy
37-
from warehouse.oidc.utils import PublisherTokenContext
37+
from warehouse.oidc.utils import OIDCContext
3838
from warehouse.organizations.services import IOrganizationService
3939
from warehouse.rate_limiting import IRateLimiter, RateLimit
4040
from warehouse.utils.security_policy import MultiSecurityPolicy
@@ -63,16 +63,14 @@ def _user(request):
6363
def _oidc_publisher(request):
6464
return (
6565
request.identity.publisher
66-
if isinstance(request.identity, PublisherTokenContext)
66+
if isinstance(request.identity, OIDCContext)
6767
else None
6868
)
6969

7070

7171
def _oidc_claims(request):
7272
return (
73-
request.identity.claims
74-
if isinstance(request.identity, PublisherTokenContext)
75-
else None
73+
request.identity.claims if isinstance(request.identity, OIDCContext) else None
7674
)
7775

7876

warehouse/accounts/utils.py

Lines changed: 0 additions & 44 deletions
This file was deleted.

warehouse/macaroons/security_policy.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,13 @@
1717
from zope.interface import implementer
1818

1919
from warehouse.accounts.interfaces import IUserService
20-
from warehouse.accounts.utils import UserTokenContext
2120
from warehouse.authnz import Permissions
2221
from warehouse.cache.http import add_vary_callback
2322
from warehouse.errors import WarehouseDenied
2423
from warehouse.macaroons import InvalidMacaroonError
2524
from warehouse.macaroons.interfaces import IMacaroonService
2625
from warehouse.metrics.interfaces import IMetricsService
27-
from warehouse.oidc.utils import PublisherTokenContext
26+
from warehouse.oidc.utils import OIDCContext
2827
from warehouse.utils.security_policy import AuthenticationMethod, principals_for
2928

3029

@@ -120,9 +119,9 @@ def identity(self, request):
120119
is_disabled, _ = login_service.is_disabled(dm.user.id)
121120
if is_disabled:
122121
return None
123-
return UserTokenContext(dm.user, dm)
122+
return dm.user
124123

125-
return PublisherTokenContext(dm.oidc_publisher, oidc_claims)
124+
return OIDCContext(dm.oidc_publisher, oidc_claims)
126125

127126
def remember(self, request, userid, **kw):
128127
# This is a NO-OP because our Macaroon header policy doesn't allow

warehouse/oidc/utils.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ def find_publisher_by_issuer(
9494

9595

9696
@dataclass
97-
class PublisherTokenContext:
97+
class OIDCContext:
9898
"""
9999
This class supports `MacaroonSecurityPolicy` in
100100
`warehouse.macaroons.security_policy`.

0 commit comments

Comments
 (0)