40
40
41
41
if TYPE_CHECKING :
42
42
from supertokens_python .querier import Querier
43
- from supertokens_python .recipe .thirdparty .interfaces import ProviderConfig
43
+ from supertokens_python .recipe .thirdparty .provider import ProviderConfig
44
44
from .utils import MultitenancyConfig
45
45
46
46
from supertokens_python .querier import NormalisedURLPath
@@ -91,6 +91,8 @@ async def get_tenant(
91
91
) -> GetTenantOkResult :
92
92
from supertokens_python .recipe .thirdparty .provider import (
93
93
ProviderConfig ,
94
+ UserInfoMap ,
95
+ UserFields ,
94
96
ProviderClientConfig ,
95
97
)
96
98
@@ -102,6 +104,23 @@ async def get_tenant(
102
104
103
105
providers : List [ProviderConfig ] = []
104
106
for p in res ["thirdParty" ]["providers" ]:
107
+ user_info_map : Optional [UserInfoMap ] = None
108
+ if "userInfoMap" in p :
109
+ map_from_payload = p ["userInfoMap" ].get ("fromIdTokenPayload" , {})
110
+ map_from_api = p ["userInfoMap" ].get ("fromUserInfoAPI" , {})
111
+ user_info_map = UserInfoMap (
112
+ UserFields (
113
+ map_from_payload .get ("userId" ),
114
+ map_from_payload .get ("email" ),
115
+ map_from_payload .get ("emailVerified" ),
116
+ ),
117
+ UserFields (
118
+ map_from_api .get ("userId" ),
119
+ map_from_api .get ("email" ),
120
+ map_from_api .get ("emailVerified" ),
121
+ ),
122
+ )
123
+
105
124
providers .append (
106
125
ProviderConfig (
107
126
third_party_id = p ["thirdPartyId" ],
@@ -124,19 +143,19 @@ async def get_tenant(
124
143
token_endpoint = p .get ("tokenEndpoint" ),
125
144
token_endpoint_body_params = p .get ("tokenEndpointBodyParams" ),
126
145
user_info_endpoint = p .get ("userInfoEndpoint" ),
127
- user_info_endpoint_query_params = p .get ("userInfoEndpointQueryParams" ),
146
+ user_info_endpoint_query_params = p .get (
147
+ "userInfoEndpointQueryParams"
148
+ ),
128
149
user_info_endpoint_headers = p .get ("userInfoEndpointHeaders" ),
129
150
jwks_uri = p .get ("jwksUri" ),
130
151
oidc_discovery_endpoint = p .get ("oidcDiscoveryEndpoint" ),
131
- user_info_map = p . get ( "userInfoMap" ) ,
152
+ user_info_map = user_info_map ,
132
153
require_email = p .get ("requireEmail" ),
133
- validate_id_token_payload = p . get ( "validateIdTokenPayload" ) ,
134
- generate_fake_email = p . get ( "generateFakeEmail" ) ,
154
+ validate_id_token_payload = None ,
155
+ generate_fake_email = None ,
135
156
)
136
157
)
137
158
138
- # /t1/recipe/multitenancy/tenant
139
-
140
159
return GetTenantOkResult (
141
160
emailpassword = EmailPasswordConfig (res ["emailPassword" ]["enabled" ]),
142
161
passwordless = PasswordlessConfig (res ["passwordless" ]["enabled" ]),
@@ -153,6 +172,8 @@ async def list_all_tenants(
153
172
from supertokens_python .recipe .thirdparty .provider import (
154
173
ProviderConfig ,
155
174
ProviderClientConfig ,
175
+ UserFields ,
176
+ UserInfoMap ,
156
177
)
157
178
158
179
response = await self .querier .send_get_request (
@@ -165,6 +186,23 @@ async def list_all_tenants(
165
186
for tenant in response ["tenants" ]:
166
187
providers : List [ProviderConfig ] = []
167
188
for p in tenant ["thirdParty" ]["providers" ]:
189
+ user_info_map : Optional [UserInfoMap ] = None
190
+ if "userInfoMap" in p :
191
+ map_from_payload = p ["userInfoMap" ].get ("fromIdTokenPayload" , {})
192
+ map_from_api = p ["userInfoMap" ].get ("fromUserInfoAPI" , {})
193
+ user_info_map = UserInfoMap (
194
+ UserFields (
195
+ map_from_payload .get ("userId" ),
196
+ map_from_payload .get ("email" ),
197
+ map_from_payload .get ("emailVerified" ),
198
+ ),
199
+ UserFields (
200
+ map_from_api .get ("userId" ),
201
+ map_from_api .get ("email" ),
202
+ map_from_api .get ("emailVerified" ),
203
+ ),
204
+ )
205
+
168
206
providers .append (
169
207
ProviderConfig (
170
208
third_party_id = p ["thirdPartyId" ],
@@ -193,7 +231,7 @@ async def list_all_tenants(
193
231
user_info_endpoint_headers = p ["userInfoEndpointHeaders" ],
194
232
jwks_uri = p ["jwksUri" ],
195
233
oidc_discovery_endpoint = p ["oidcDiscoveryEndpoint" ],
196
- user_info_map = p [ "userInfoMap" ] ,
234
+ user_info_map = user_info_map ,
197
235
require_email = p ["requireEmail" ],
198
236
validate_id_token_payload = p ["validateIdTokenPayload" ],
199
237
generate_fake_email = p ["generateFakeEmail" ],
0 commit comments