File tree Expand file tree Collapse file tree 5 files changed +18
-2
lines changed
Expand file tree Collapse file tree 5 files changed +18
-2
lines changed Original file line number Diff line number Diff line change 1616 matrix :
1717 iam_api :
1818 - iam-staff-portal-api
19- - iam-agent-portal-api
20- - iam-bene-portal-api
19+ # - iam-agent-portal-api
20+ # - iam-bene-portal-api
2121 env :
2222 NAMESPACE : ${{ secrets.docker_hub_organisation || 'openg2p' }}
2323 SERVICE_NAME : ${{ matrix.iam_api }}
Original file line number Diff line number Diff line change 1+ OpenG2P IAM Agent Portal API package.
Original file line number Diff line number Diff line change 1+ OpenG2P IAM Bene Portal API package.
Original file line number Diff line number Diff line change @@ -16,5 +16,6 @@ class AuthPrincipal(BaseModel):
1616 iat : datetime | None = None
1717 exp : datetime | None = None
1818 roles : list [str ] = Field (default_factory = list )
19+ client_roles : dict [str , list [str ]] | None = None
1920 provider : str | None = None
2021 raw_claims : dict [str , Any ] = Field (default_factory = dict )
Original file line number Diff line number Diff line change @@ -67,6 +67,18 @@ def _extract_roles(claims: dict) -> list[str]:
6767 return sorted (realm_roles | client_roles )
6868
6969
70+ def _extract_client_roles (claims : dict ) -> dict [str , list [str ]] | None :
71+ resource_access = claims .get ("resource_access" ) or {}
72+ if not resource_access :
73+ return None
74+ result = {}
75+ for client , value in resource_access .items ():
76+ roles = (value or {}).get ("roles" ) or []
77+ if roles :
78+ result [client ] = sorted (roles )
79+ return result or None
80+
81+
7082def _resolve_user_type (claims : dict ) -> str | None :
7183 return claims .get ("user_type" ) or claims .get ("userType" )
7284
@@ -85,6 +97,7 @@ async def auth_principal(
8597 iat = claims .get ("iat" ),
8698 exp = claims .get ("exp" ),
8799 roles = _extract_roles (claims ),
100+ client_roles = _extract_client_roles (claims ),
88101 provider = claims .get ("identity_provider" ) or claims .get ("iss" ),
89102 raw_claims = claims ,
90103 )
You can’t perform that action at this time.
0 commit comments