maleo-identity 0.0.55__py3-none-any.whl → 0.0.58__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of maleo-identity might be problematic. Click here for more details.

Files changed (41) hide show
  1. maleo_identity/client/controllers/http/organization.py +300 -63
  2. maleo_identity/client/controllers/http/user.py +253 -52
  3. maleo_identity/client/services/organization.py +184 -418
  4. maleo_identity/client/services/user.py +159 -345
  5. maleo_identity/constants/organization_role.py +4 -2
  6. maleo_identity/constants/user.py +3 -0
  7. maleo_identity/constants/user_organization.py +19 -4
  8. maleo_identity/constants/user_organization_role.py +8 -4
  9. maleo_identity/constants/user_system_role.py +1 -10
  10. maleo_identity/enums/organization.py +1 -1
  11. maleo_identity/enums/organization_role.py +2 -1
  12. maleo_identity/enums/user.py +2 -0
  13. maleo_identity/enums/user_organization.py +8 -2
  14. maleo_identity/enums/user_organization_role.py +8 -1
  15. maleo_identity/enums/user_system_role.py +0 -5
  16. maleo_identity/models/responses/user.py +13 -1
  17. maleo_identity/models/schemas/user.py +5 -1
  18. maleo_identity/models/tables/organization.py +21 -2
  19. maleo_identity/models/tables/organization_registration_code.py +14 -6
  20. maleo_identity/models/tables/organization_role.py +35 -4
  21. maleo_identity/models/tables/user.py +17 -3
  22. maleo_identity/models/tables/user_organization.py +52 -4
  23. maleo_identity/models/tables/user_organization_role.py +63 -4
  24. maleo_identity/models/tables/user_profile.py +11 -4
  25. maleo_identity/models/tables/user_system_role.py +12 -5
  26. maleo_identity/models/transfers/general/organization.py +4 -1
  27. maleo_identity/models/transfers/general/organization_role.py +5 -1
  28. maleo_identity/models/transfers/general/user.py +6 -1
  29. maleo_identity/models/transfers/general/user_organization.py +5 -1
  30. maleo_identity/models/transfers/general/user_organization_role.py +10 -10
  31. maleo_identity/models/transfers/general/user_system_role.py +6 -3
  32. maleo_identity/models/transfers/results/client/user.py +7 -1
  33. maleo_identity/models/transfers/results/general/user.py +7 -1
  34. maleo_identity/models/transfers/results/repository/user.py +7 -1
  35. maleo_identity/types/results/client/user.py +5 -0
  36. maleo_identity/types/results/general/user.py +5 -0
  37. maleo_identity/types/results/repository/user.py +5 -0
  38. {maleo_identity-0.0.55.dist-info → maleo_identity-0.0.58.dist-info}/METADATA +3 -3
  39. {maleo_identity-0.0.55.dist-info → maleo_identity-0.0.58.dist-info}/RECORD +41 -41
  40. {maleo_identity-0.0.55.dist-info → maleo_identity-0.0.58.dist-info}/WHEEL +0 -0
  41. {maleo_identity-0.0.55.dist-info → maleo_identity-0.0.58.dist-info}/top_level.txt +0 -0
@@ -1,7 +1,10 @@
1
+ from typing import Dict, Optional
2
+ from maleo_foundation.authorization import Authorization
1
3
  from maleo_foundation.managers.client.base import BearerAuth
2
4
  from maleo_foundation.managers.client.maleo import MaleoClientHTTPController
3
5
  from maleo_foundation.models.transfers.results.client.controllers.http \
4
6
  import BaseClientHTTPControllerResults
7
+ from maleo_foundation.utils.merger import deep_merge
5
8
  from maleo_identity.models.transfers.parameters.general.organization_role \
6
9
  import MaleoIdentityOrganizationRoleGeneralParametersTransfers
7
10
  from maleo_identity.models.transfers.parameters.general.organization \
@@ -22,12 +25,14 @@ from maleo_identity.models.transfers.parameters.client.user_organization_role \
22
25
  class MaleoIdentityOrganizationHTTPController(MaleoClientHTTPController):
23
26
  async def get_organizations(
24
27
  self,
25
- parameters:MaleoIdentityOrganizationClientParametersTransfers.GetMultiple
28
+ parameters:MaleoIdentityOrganizationClientParametersTransfers.GetMultiple,
29
+ authorization:Optional[Authorization] = None,
30
+ headers:Optional[Dict[str, str]] = None
26
31
  ) -> BaseClientHTTPControllerResults:
27
32
  """Fetch organizations from MaleoIdentity"""
28
33
  async with self._manager.get_client() as client:
29
34
  #* Define URL
30
- url = f"{self._manager.url.api}/v1/organizations/"
35
+ url = f"{self._manager.url}/v1/organizations/"
31
36
 
32
37
  #* Parse parameters to query params
33
38
  params = (
@@ -42,22 +47,40 @@ class MaleoIdentityOrganizationHTTPController(MaleoClientHTTPController):
42
47
  )
43
48
  )
44
49
 
50
+ #* Create headers
51
+ base_headers = {
52
+ "Content-Type": "application/json"
53
+ }
54
+ if headers is not None:
55
+ headers = deep_merge(
56
+ base_headers,
57
+ headers
58
+ )
59
+ else:
60
+ headers = base_headers
61
+
45
62
  #* Create auth
46
- token = self._service_manager.token
47
- auth = BearerAuth(token=token) if token is not None else None
63
+ token = None
64
+ if authorization and authorization.scheme == "Bearer":
65
+ token = authorization.credentials
66
+ elif self._service_manager.token:
67
+ token = self._service_manager.token
68
+ auth = BearerAuth(token) if token else None
48
69
 
49
70
  #* Send request and wait for response
50
- response = await client.get(url=url, params=params, auth=auth)
71
+ response = await client.get(url=url, params=params, headers=headers, auth=auth)
51
72
  return BaseClientHTTPControllerResults(response=response)
52
73
 
53
74
  async def get_structured_organizations(
54
75
  self,
55
- parameters:MaleoIdentityOrganizationClientParametersTransfers.GetMultipleStructured
76
+ parameters:MaleoIdentityOrganizationClientParametersTransfers.GetMultipleStructured,
77
+ authorization:Optional[Authorization] = None,
78
+ headers:Optional[Dict[str, str]] = None
56
79
  ) -> BaseClientHTTPControllerResults:
57
80
  """Fetch structured organizations from MaleoIdentity"""
58
81
  async with self._manager.get_client() as client:
59
82
  #* Define URL
60
- url = f"{self._manager.url.api}/v1/organizations/structured"
83
+ url = f"{self._manager.url}/v1/organizations/structured"
61
84
 
62
85
  #* Parse parameters to query params
63
86
  params = (
@@ -72,22 +95,40 @@ class MaleoIdentityOrganizationHTTPController(MaleoClientHTTPController):
72
95
  )
73
96
  )
74
97
 
98
+ #* Create headers
99
+ base_headers = {
100
+ "Content-Type": "application/json"
101
+ }
102
+ if headers is not None:
103
+ headers = deep_merge(
104
+ base_headers,
105
+ headers
106
+ )
107
+ else:
108
+ headers = base_headers
109
+
75
110
  #* Create auth
76
- token = self._service_manager.token
77
- auth = BearerAuth(token=token) if token is not None else None
111
+ token = None
112
+ if authorization and authorization.scheme == "Bearer":
113
+ token = authorization.credentials
114
+ elif self._service_manager.token:
115
+ token = self._service_manager.token
116
+ auth = BearerAuth(token) if token else None
78
117
 
79
118
  #* Send request and wait for response
80
- response = await client.get(url=url, params=params, auth=auth)
119
+ response = await client.get(url=url, params=params, headers=headers, auth=auth)
81
120
  return BaseClientHTTPControllerResults(response=response)
82
121
 
83
122
  async def get_organization(
84
123
  self,
85
- parameters:MaleoIdentityOrganizationGeneralParametersTransfers.GetSingle
124
+ parameters:MaleoIdentityOrganizationGeneralParametersTransfers.GetSingle,
125
+ authorization:Optional[Authorization] = None,
126
+ headers:Optional[Dict[str, str]] = None
86
127
  ) -> BaseClientHTTPControllerResults:
87
128
  """Fetch organization from MaleoIdentity"""
88
129
  async with self._manager.get_client() as client:
89
130
  #* Define URL
90
- url = f"{self._manager.url.api}/v1/organizations/{parameters.identifier}/{parameters.value}"
131
+ url = f"{self._manager.url}/v1/organizations/{parameters.identifier}/{parameters.value}"
91
132
 
92
133
  #* Parse parameters to query params
93
134
  params = (
@@ -99,22 +140,40 @@ class MaleoIdentityOrganizationHTTPController(MaleoClientHTTPController):
99
140
  .model_dump(exclude_none=True)
100
141
  )
101
142
 
143
+ #* Create headers
144
+ base_headers = {
145
+ "Content-Type": "application/json"
146
+ }
147
+ if headers is not None:
148
+ headers = deep_merge(
149
+ base_headers,
150
+ headers
151
+ )
152
+ else:
153
+ headers = base_headers
154
+
102
155
  #* Create auth
103
- token = self._service_manager.token
104
- auth = BearerAuth(token=token) if token is not None else None
156
+ token = None
157
+ if authorization and authorization.scheme == "Bearer":
158
+ token = authorization.credentials
159
+ elif self._service_manager.token:
160
+ token = self._service_manager.token
161
+ auth = BearerAuth(token) if token else None
105
162
 
106
163
  #* Send request and wait for response
107
- response = await client.get(url=url, params=params, auth=auth)
164
+ response = await client.get(url=url, params=params, headers=headers, auth=auth)
108
165
  return BaseClientHTTPControllerResults(response=response)
109
166
 
110
167
  async def get_structured_organization(
111
168
  self,
112
- parameters:MaleoIdentityOrganizationGeneralParametersTransfers.GetSingle
169
+ parameters:MaleoIdentityOrganizationGeneralParametersTransfers.GetSingle,
170
+ authorization:Optional[Authorization] = None,
171
+ headers:Optional[Dict[str, str]] = None
113
172
  ) -> BaseClientHTTPControllerResults:
114
173
  """Fetch structured organization from MaleoIdentity"""
115
174
  async with self._manager.get_client() as client:
116
175
  #* Define URL
117
- url = f"{self._manager.url.api}/v1/organizations/{parameters.identifier}/{parameters.value}/structured"
176
+ url = f"{self._manager.url}/v1/organizations/{parameters.identifier}/{parameters.value}/structured"
118
177
 
119
178
  #* Parse parameters to query params
120
179
  params = (
@@ -126,22 +185,40 @@ class MaleoIdentityOrganizationHTTPController(MaleoClientHTTPController):
126
185
  .model_dump(exclude_none=True)
127
186
  )
128
187
 
188
+ #* Create headers
189
+ base_headers = {
190
+ "Content-Type": "application/json"
191
+ }
192
+ if headers is not None:
193
+ headers = deep_merge(
194
+ base_headers,
195
+ headers
196
+ )
197
+ else:
198
+ headers = base_headers
199
+
129
200
  #* Create auth
130
- token = self._service_manager.token
131
- auth = BearerAuth(token=token) if token is not None else None
201
+ token = None
202
+ if authorization and authorization.scheme == "Bearer":
203
+ token = authorization.credentials
204
+ elif self._service_manager.token:
205
+ token = self._service_manager.token
206
+ auth = BearerAuth(token) if token else None
132
207
 
133
208
  #* Send request and wait for response
134
- response = await client.get(url=url, params=params, auth=auth)
209
+ response = await client.get(url=url, params=params, headers=headers, auth=auth)
135
210
  return BaseClientHTTPControllerResults(response=response)
136
211
 
137
212
  async def get_organization_children(
138
213
  self,
139
- parameters:MaleoIdentityOrganizationClientParametersTransfers.GetMultipleChildren
214
+ parameters:MaleoIdentityOrganizationClientParametersTransfers.GetMultipleChildren,
215
+ authorization:Optional[Authorization] = None,
216
+ headers:Optional[Dict[str, str]] = None
140
217
  ) -> BaseClientHTTPControllerResults:
141
218
  """Fetch organization's children from MaleoIdentity"""
142
219
  async with self._manager.get_client() as client:
143
220
  #* Define URL
144
- url = f"{self._manager.url.api}/v1/organizations/{parameters.organization_id}/children"
221
+ url = f"{self._manager.url}/v1/organizations/{parameters.organization_id}/children"
145
222
 
146
223
  #* Parse parameters to query params
147
224
  params = (
@@ -156,22 +233,40 @@ class MaleoIdentityOrganizationHTTPController(MaleoClientHTTPController):
156
233
  )
157
234
  )
158
235
 
236
+ #* Create headers
237
+ base_headers = {
238
+ "Content-Type": "application/json"
239
+ }
240
+ if headers is not None:
241
+ headers = deep_merge(
242
+ base_headers,
243
+ headers
244
+ )
245
+ else:
246
+ headers = base_headers
247
+
159
248
  #* Create auth
160
- token = self._service_manager.token
161
- auth = BearerAuth(token=token) if token is not None else None
249
+ token = None
250
+ if authorization and authorization.scheme == "Bearer":
251
+ token = authorization.credentials
252
+ elif self._service_manager.token:
253
+ token = self._service_manager.token
254
+ auth = BearerAuth(token) if token else None
162
255
 
163
256
  #* Send request and wait for response
164
- response = await client.get(url=url, params=params, auth=auth)
257
+ response = await client.get(url=url, params=params, headers=headers, auth=auth)
165
258
  return BaseClientHTTPControllerResults(response=response)
166
259
 
167
260
  async def create(
168
261
  self,
169
- parameters:MaleoIdentityOrganizationGeneralParametersTransfers.Create
262
+ parameters:MaleoIdentityOrganizationGeneralParametersTransfers.Create,
263
+ authorization:Optional[Authorization] = None,
264
+ headers:Optional[Dict[str, str]] = None
170
265
  ) -> BaseClientHTTPControllerResults:
171
266
  """Create a new organization in MaleoIdentity"""
172
267
  async with self._manager.get_client() as client:
173
268
  #* Define URL
174
- url = f"{self._manager.url.api}/v1/organizations/"
269
+ url = f"{self._manager.url}/v1/organizations/"
175
270
 
176
271
  #* Declare body
177
272
  json = (
@@ -193,9 +288,25 @@ class MaleoIdentityOrganizationHTTPController(MaleoClientHTTPController):
193
288
  .model_dump(exclude_none=True)
194
289
  )
195
290
 
291
+ #* Create headers
292
+ base_headers = {
293
+ "Content-Type": "application/json"
294
+ }
295
+ if headers is not None:
296
+ headers = deep_merge(
297
+ base_headers,
298
+ headers
299
+ )
300
+ else:
301
+ headers = base_headers
302
+
196
303
  #* Create auth
197
- token = self._service_manager.token
198
- auth = BearerAuth(token=token) if token is not None else None
304
+ token = None
305
+ if authorization and authorization.scheme == "Bearer":
306
+ token = authorization.credentials
307
+ elif self._service_manager.token:
308
+ token = self._service_manager.token
309
+ auth = BearerAuth(token) if token else None
199
310
 
200
311
  #* Send request and wait for response
201
312
  response = await client.post(url=url, json=json, params=params, auth=auth)
@@ -203,12 +314,14 @@ class MaleoIdentityOrganizationHTTPController(MaleoClientHTTPController):
203
314
 
204
315
  async def update(
205
316
  self,
206
- parameters:MaleoIdentityOrganizationGeneralParametersTransfers.Update
317
+ parameters:MaleoIdentityOrganizationGeneralParametersTransfers.Update,
318
+ authorization:Optional[Authorization] = None,
319
+ headers:Optional[Dict[str, str]] = None
207
320
  ) -> BaseClientHTTPControllerResults:
208
321
  """Update organization's data in MaleoIdentity"""
209
322
  async with self._manager.get_client() as client:
210
323
  #* Define URL
211
- url = f"{self._manager.url.api}/v1/organizations/{parameters.identifier}/{parameters.value}"
324
+ url = f"{self._manager.url}/v1/organizations/{parameters.identifier}/{parameters.value}"
212
325
 
213
326
  #* Declare body
214
327
  json = (
@@ -230,9 +343,25 @@ class MaleoIdentityOrganizationHTTPController(MaleoClientHTTPController):
230
343
  .model_dump(exclude_none=True)
231
344
  )
232
345
 
346
+ #* Create headers
347
+ base_headers = {
348
+ "Content-Type": "application/json"
349
+ }
350
+ if headers is not None:
351
+ headers = deep_merge(
352
+ base_headers,
353
+ headers
354
+ )
355
+ else:
356
+ headers = base_headers
357
+
233
358
  #* Create auth
234
- token = self._service_manager.token
235
- auth = BearerAuth(token=token) if token is not None else None
359
+ token = None
360
+ if authorization and authorization.scheme == "Bearer":
361
+ token = authorization.credentials
362
+ elif self._service_manager.token:
363
+ token = self._service_manager.token
364
+ auth = BearerAuth(token) if token else None
236
365
 
237
366
  #* Send request and wait for response
238
367
  response = await client.put(url=url, json=json, params=params, auth=auth)
@@ -240,12 +369,14 @@ class MaleoIdentityOrganizationHTTPController(MaleoClientHTTPController):
240
369
 
241
370
  async def get_organization_roles(
242
371
  self,
243
- parameters:MaleoIdentityOrganizationRoleClientParametersTransfers.GetMultipleFromOrganization
372
+ parameters:MaleoIdentityOrganizationRoleClientParametersTransfers.GetMultipleFromOrganization,
373
+ authorization:Optional[Authorization] = None,
374
+ headers:Optional[Dict[str, str]] = None
244
375
  ) -> BaseClientHTTPControllerResults:
245
376
  """Get organization's roles from MaleoIdentity"""
246
377
  async with self._manager.get_client() as client:
247
378
  #* Define URL
248
- url = f"{self._manager.url.api}/v1/organizations/{parameters.organization_id}/roles/"
379
+ url = f"{self._manager.url}/v1/organizations/{parameters.organization_id}/roles/"
249
380
 
250
381
  #* Parse parameters to query params
251
382
  params = (
@@ -260,22 +391,40 @@ class MaleoIdentityOrganizationHTTPController(MaleoClientHTTPController):
260
391
  )
261
392
  )
262
393
 
394
+ #* Create headers
395
+ base_headers = {
396
+ "Content-Type": "application/json"
397
+ }
398
+ if headers is not None:
399
+ headers = deep_merge(
400
+ base_headers,
401
+ headers
402
+ )
403
+ else:
404
+ headers = base_headers
405
+
263
406
  #* Create auth
264
- token = self._service_manager.token
265
- auth = BearerAuth(token=token) if token is not None else None
407
+ token = None
408
+ if authorization and authorization.scheme == "Bearer":
409
+ token = authorization.credentials
410
+ elif self._service_manager.token:
411
+ token = self._service_manager.token
412
+ auth = BearerAuth(token) if token else None
266
413
 
267
414
  #* Send request and wait for response
268
- response = await client.get(url=url, params=params, auth=auth)
415
+ response = await client.get(url=url, params=params, headers=headers, auth=auth)
269
416
  return BaseClientHTTPControllerResults(response=response)
270
417
 
271
418
  async def get_organization_role(
272
419
  self,
273
- parameters:MaleoIdentityOrganizationRoleGeneralParametersTransfers.GetSingle
420
+ parameters:MaleoIdentityOrganizationRoleGeneralParametersTransfers.GetSingle,
421
+ authorization:Optional[Authorization] = None,
422
+ headers:Optional[Dict[str, str]] = None
274
423
  ) -> BaseClientHTTPControllerResults:
275
424
  """Get organization's role from MaleoIdentity"""
276
425
  async with self._manager.get_client() as client:
277
426
  #* Define URL
278
- url = f"{self._manager.url.api}/v1/organizations/{parameters.organization_id}/roles/{parameters.key}"
427
+ url = f"{self._manager.url}/v1/organizations/{parameters.organization_id}/roles/{parameters.key}"
279
428
 
280
429
  #* Parse parameters to query params
281
430
  params = (
@@ -287,22 +436,40 @@ class MaleoIdentityOrganizationHTTPController(MaleoClientHTTPController):
287
436
  .model_dump(exclude_none=True)
288
437
  )
289
438
 
439
+ #* Create headers
440
+ base_headers = {
441
+ "Content-Type": "application/json"
442
+ }
443
+ if headers is not None:
444
+ headers = deep_merge(
445
+ base_headers,
446
+ headers
447
+ )
448
+ else:
449
+ headers = base_headers
450
+
290
451
  #* Create auth
291
- token = self._service_manager.token
292
- auth = BearerAuth(token=token) if token is not None else None
452
+ token = None
453
+ if authorization and authorization.scheme == "Bearer":
454
+ token = authorization.credentials
455
+ elif self._service_manager.token:
456
+ token = self._service_manager.token
457
+ auth = BearerAuth(token) if token else None
293
458
 
294
459
  #* Send request and wait for response
295
- response = await client.get(url=url, params=params, auth=auth)
460
+ response = await client.get(url=url, params=params, headers=headers, auth=auth)
296
461
  return BaseClientHTTPControllerResults(response=response)
297
462
 
298
463
  async def get_organization_users(
299
464
  self,
300
- parameters:MaleoIdentityUserOrganizationClientParametersTransfers.GetMultipleFromOrganization
465
+ parameters:MaleoIdentityUserOrganizationClientParametersTransfers.GetMultipleFromOrganization,
466
+ authorization:Optional[Authorization] = None,
467
+ headers:Optional[Dict[str, str]] = None
301
468
  ) -> BaseClientHTTPControllerResults:
302
469
  """Get organization's users from MaleoIdentity"""
303
470
  async with self._manager.get_client() as client:
304
471
  #* Define URL
305
- url = f"{self._manager.url.api}/v1/organizations/{parameters.organization_id}/users/"
472
+ url = f"{self._manager.url}/v1/organizations/{parameters.organization_id}/users/"
306
473
 
307
474
  #* Parse parameters to query params
308
475
  params = (
@@ -317,22 +484,40 @@ class MaleoIdentityOrganizationHTTPController(MaleoClientHTTPController):
317
484
  )
318
485
  )
319
486
 
487
+ #* Create headers
488
+ base_headers = {
489
+ "Content-Type": "application/json"
490
+ }
491
+ if headers is not None:
492
+ headers = deep_merge(
493
+ base_headers,
494
+ headers
495
+ )
496
+ else:
497
+ headers = base_headers
498
+
320
499
  #* Create auth
321
- token = self._service_manager.token
322
- auth = BearerAuth(token=token) if token is not None else None
500
+ token = None
501
+ if authorization and authorization.scheme == "Bearer":
502
+ token = authorization.credentials
503
+ elif self._service_manager.token:
504
+ token = self._service_manager.token
505
+ auth = BearerAuth(token) if token else None
323
506
 
324
507
  #* Send request and wait for response
325
- response = await client.get(url=url, params=params, auth=auth)
508
+ response = await client.get(url=url, params=params, headers=headers, auth=auth)
326
509
  return BaseClientHTTPControllerResults(response=response)
327
510
 
328
511
  async def get_organization_user(
329
512
  self,
330
- parameters:MaleoIdentityUserOrganizationGeneralParametersTransfers.GetSingle
513
+ parameters:MaleoIdentityUserOrganizationGeneralParametersTransfers.GetSingle,
514
+ authorization:Optional[Authorization] = None,
515
+ headers:Optional[Dict[str, str]] = None
331
516
  ) -> BaseClientHTTPControllerResults:
332
517
  """Get organization's user from MaleoIdentity"""
333
518
  async with self._manager.get_client() as client:
334
519
  #* Define URL
335
- url = f"{self._manager.url.api}/v1/organizations/{parameters.organization_id}/users/{parameters.user_id}"
520
+ url = f"{self._manager.url}/v1/organizations/{parameters.organization_id}/users/{parameters.user_id}"
336
521
 
337
522
  #* Parse parameters to query params
338
523
  params = (
@@ -344,22 +529,40 @@ class MaleoIdentityOrganizationHTTPController(MaleoClientHTTPController):
344
529
  .model_dump(exclude_none=True)
345
530
  )
346
531
 
532
+ #* Create headers
533
+ base_headers = {
534
+ "Content-Type": "application/json"
535
+ }
536
+ if headers is not None:
537
+ headers = deep_merge(
538
+ base_headers,
539
+ headers
540
+ )
541
+ else:
542
+ headers = base_headers
543
+
347
544
  #* Create auth
348
- token = self._service_manager.token
349
- auth = BearerAuth(token=token) if token is not None else None
545
+ token = None
546
+ if authorization and authorization.scheme == "Bearer":
547
+ token = authorization.credentials
548
+ elif self._service_manager.token:
549
+ token = self._service_manager.token
550
+ auth = BearerAuth(token) if token else None
350
551
 
351
552
  #* Send request and wait for response
352
- response = await client.get(url=url, params=params, auth=auth)
553
+ response = await client.get(url=url, params=params, headers=headers, auth=auth)
353
554
  return BaseClientHTTPControllerResults(response=response)
354
555
 
355
556
  async def get_organization_user_roles(
356
557
  self,
357
- parameters:MaleoIdentityUserOrganizationRoleClientParametersTransfers.GetMultipleFromUserOrOrganization
558
+ parameters:MaleoIdentityUserOrganizationRoleClientParametersTransfers.GetMultipleFromUserOrOrganization,
559
+ authorization:Optional[Authorization] = None,
560
+ headers:Optional[Dict[str, str]] = None
358
561
  ) -> BaseClientHTTPControllerResults:
359
562
  """Get organization's user roles from MaleoIdentity"""
360
563
  async with self._manager.get_client() as client:
361
564
  #* Define URL
362
- url = f"{self._manager.url.api}/v1/organizations/{parameters.organization_id}/users/{parameters.user_id}/roles/"
565
+ url = f"{self._manager.url}/v1/organizations/{parameters.organization_id}/users/{parameters.user_id}/roles/"
363
566
 
364
567
  #* Parse parameters to query params
365
568
  params = (
@@ -374,22 +577,40 @@ class MaleoIdentityOrganizationHTTPController(MaleoClientHTTPController):
374
577
  )
375
578
  )
376
579
 
580
+ #* Create headers
581
+ base_headers = {
582
+ "Content-Type": "application/json"
583
+ }
584
+ if headers is not None:
585
+ headers = deep_merge(
586
+ base_headers,
587
+ headers
588
+ )
589
+ else:
590
+ headers = base_headers
591
+
377
592
  #* Create auth
378
- token = self._service_manager.token
379
- auth = BearerAuth(token=token) if token is not None else None
593
+ token = None
594
+ if authorization and authorization.scheme == "Bearer":
595
+ token = authorization.credentials
596
+ elif self._service_manager.token:
597
+ token = self._service_manager.token
598
+ auth = BearerAuth(token) if token else None
380
599
 
381
600
  #* Send request and wait for response
382
- response = await client.get(url=url, params=params, auth=auth)
601
+ response = await client.get(url=url, params=params, headers=headers, auth=auth)
383
602
  return BaseClientHTTPControllerResults(response=response)
384
603
 
385
604
  async def get_organization_user_role(
386
605
  self,
387
- parameters:MaleoIdentityUserOrganizationRoleGeneralParametersTransfers.GetSingle
606
+ parameters:MaleoIdentityUserOrganizationRoleGeneralParametersTransfers.GetSingle,
607
+ authorization:Optional[Authorization] = None,
608
+ headers:Optional[Dict[str, str]] = None
388
609
  ) -> BaseClientHTTPControllerResults:
389
610
  """Get organization's user role from MaleoIdentity"""
390
611
  async with self._manager.get_client() as client:
391
612
  #* Define URL
392
- url = f"{self._manager.url.api}/v1/organizations/{parameters.organization_id}/users/{parameters.user_id}/roles/{parameters.key}"
613
+ url = f"{self._manager.url}/v1/organizations/{parameters.organization_id}/users/{parameters.user_id}/roles/{parameters.key}"
393
614
 
394
615
  #* Parse parameters to query params
395
616
  params = (
@@ -401,10 +622,26 @@ class MaleoIdentityOrganizationHTTPController(MaleoClientHTTPController):
401
622
  .model_dump(exclude_none=True)
402
623
  )
403
624
 
625
+ #* Create headers
626
+ base_headers = {
627
+ "Content-Type": "application/json"
628
+ }
629
+ if headers is not None:
630
+ headers = deep_merge(
631
+ base_headers,
632
+ headers
633
+ )
634
+ else:
635
+ headers = base_headers
636
+
404
637
  #* Create auth
405
- token = self._service_manager.token
406
- auth = BearerAuth(token=token) if token is not None else None
638
+ token = None
639
+ if authorization and authorization.scheme == "Bearer":
640
+ token = authorization.credentials
641
+ elif self._service_manager.token:
642
+ token = self._service_manager.token
643
+ auth = BearerAuth(token) if token else None
407
644
 
408
645
  #* Send request and wait for response
409
- response = await client.get(url=url, params=params, auth=auth)
646
+ response = await client.get(url=url, params=params, headers=headers, auth=auth)
410
647
  return BaseClientHTTPControllerResults(response=response)