Skip to content

Commit 76ebca1

Browse files
committed
refactor: implement SCIMProvider.get_service_provider_config
1 parent f7b13b9 commit 76ebca1

File tree

1 file changed

+21
-18
lines changed

1 file changed

+21
-18
lines changed

scim2_server/provider.py

Lines changed: 21 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -433,9 +433,8 @@ def forbid_filter(request: Request):
433433
if "filter" in request.args:
434434
raise Forbidden
435435

436-
def call_service_provider_config(self, request: Request, **kwargs):
437-
"""Return the ServiceProviderConfig."""
438-
self.forbid_filter(request)
436+
def get_service_provider_config(self):
437+
"""Build a ServiceProviderConfig object describing the server configuration."""
439438
auth_scheme = (
440439
[]
441440
if not self.bearer_tokens
@@ -448,23 +447,27 @@ def call_service_provider_config(self, request: Request, **kwargs):
448447
)
449448
]
450449
)
451-
return self.make_response(
452-
ServiceProviderConfig(
453-
documentation_uri="https://www.example.com/",
454-
patch=Patch(supported=True),
455-
bulk=Bulk(supported=False),
456-
filter=Filter(supported=True, max_results=1000),
457-
change_password=ChangePassword(supported=True),
458-
sort=Sort(supported=True),
459-
etag=ETag(supported=True),
460-
authentication_schemes=auth_scheme,
461-
meta=Meta(
462-
resource_type="ServiceProviderConfig",
463-
location=request.url,
464-
),
465-
).model_dump()
450+
return ServiceProviderConfig(
451+
documentation_uri="https://www.example.com/",
452+
patch=Patch(supported=True),
453+
bulk=Bulk(supported=False),
454+
filter=Filter(supported=True, max_results=1000),
455+
change_password=ChangePassword(supported=True),
456+
sort=Sort(supported=True),
457+
etag=ETag(supported=True),
458+
authentication_schemes=auth_scheme,
459+
meta=Meta(
460+
resource_type="ServiceProviderConfig",
461+
),
466462
)
467463

464+
def call_service_provider_config(self, request: Request, **kwargs):
465+
"""Return the ServiceProviderConfig."""
466+
self.forbid_filter(request)
467+
spc = self.get_service_provider_config()
468+
spc.meta.location = request.url
469+
return self.make_response(spc.model_dump())
470+
468471
def call_resource_type(self, request: Request, resource_type: str, **kwargs):
469472
"""Return a single resource type."""
470473
self.forbid_filter(request)

0 commit comments

Comments
 (0)