Skip to content

Commit b37edc8

Browse files
committed
fix: check uma permissions with resource ID as well
1 parent 5fa7ea1 commit b37edc8

1 file changed

Lines changed: 14 additions & 14 deletions

File tree

src/keycloak/keycloak_openid.py

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -803,13 +803,13 @@ def has_uma_access(self, token, permissions):
803803
raise
804804

805805
for resource_struct in granted:
806-
resource = resource_struct["rsname"]
807-
scopes = resource_struct.get("scopes", None)
808-
if not scopes:
809-
needed.discard(resource)
810-
continue
811-
for scope in scopes: # pragma: no cover
812-
needed.discard("{}#{}".format(resource, scope))
806+
for resource in (resource_struct["rsname"], resource_struct["rsid"]):
807+
scopes = resource_struct.get("scopes", None)
808+
if not scopes:
809+
needed.discard(resource)
810+
continue
811+
for scope in scopes: # pragma: no cover
812+
needed.discard("{}#{}".format(resource, scope))
813813

814814
return AuthStatus(
815815
is_logged_in=True, is_authorized=len(needed) == 0, missing_permissions=needed
@@ -1469,13 +1469,13 @@ async def a_has_uma_access(self, token, permissions):
14691469
raise
14701470

14711471
for resource_struct in granted:
1472-
resource = resource_struct["rsname"]
1473-
scopes = resource_struct.get("scopes", None)
1474-
if not scopes:
1475-
needed.discard(resource)
1476-
continue
1477-
for scope in scopes: # pragma: no cover
1478-
needed.discard("{}#{}".format(resource, scope))
1472+
for resource in (resource_struct["rsname"], resource_struct["rsid"]):
1473+
scopes = resource_struct.get("scopes", None)
1474+
if not scopes:
1475+
needed.discard(resource)
1476+
continue
1477+
for scope in scopes: # pragma: no cover
1478+
needed.discard("{}#{}".format(resource, scope))
14791479

14801480
return AuthStatus(
14811481
is_logged_in=True, is_authorized=len(needed) == 0, missing_permissions=needed

0 commit comments

Comments
 (0)