Skip to content

Commit cc05e76

Browse files
committed
fix(auth): simplify tenant and provider ID validation checks
1 parent f3e185d commit cc05e76

3 files changed

Lines changed: 4 additions & 12 deletions

File tree

‎firebase_admin/_auth_providers.py‎

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -387,9 +387,7 @@ def _validate_oidc_provider_id(provider_id):
387387
if not isinstance(provider_id, str):
388388
raise ValueError(
389389
f'Invalid OIDC provider ID: {provider_id}. Provider ID must be a non-empty string.')
390-
if (not provider_id.startswith('oidc.') or
391-
provider_id == 'oidc.' or
392-
not _auth_utils.is_safe_url_segment(provider_id)):
390+
if not provider_id.startswith('oidc.') or not _auth_utils.is_safe_url_segment(provider_id):
393391
raise ValueError(f'Invalid OIDC provider ID: {provider_id}.')
394392
return provider_id
395393

@@ -398,9 +396,7 @@ def _validate_saml_provider_id(provider_id):
398396
if not isinstance(provider_id, str):
399397
raise ValueError(
400398
f'Invalid SAML provider ID: {provider_id}. Provider ID must be a non-empty string.')
401-
if (not provider_id.startswith('saml.') or
402-
provider_id == 'saml.' or
403-
not _auth_utils.is_safe_url_segment(provider_id)):
399+
if not provider_id.startswith('saml.') or not _auth_utils.is_safe_url_segment(provider_id):
404400
raise ValueError(f'Invalid SAML provider ID: {provider_id}.')
405401
return provider_id
406402

‎firebase_admin/tenant_mgt.py‎

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -288,11 +288,7 @@ def update_tenant(
288288
self, tenant_id, display_name=None, allow_password_sign_up=None,
289289
enable_email_link_sign_in=None):
290290
"""Updates the specified tenant with the given parameters."""
291-
if not isinstance(tenant_id, str) or not tenant_id:
292-
raise ValueError('Tenant ID must be a non-empty string.')
293-
if not _auth_utils.is_safe_url_segment(tenant_id):
294-
raise ValueError(
295-
'Tenant ID must be a non-empty string with valid URL path segment characters.')
291+
_auth_utils.validate_tenant_id(tenant_id)
296292

297293
payload = {}
298294
if display_name is not None:

‎tests/test_tenant_mgt.py‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -308,7 +308,7 @@ class TestUpdateTenant:
308308
def test_invalid_tenant_id(self, tenant_id, tenant_mgt_app):
309309
with pytest.raises(ValueError) as excinfo:
310310
tenant_mgt.update_tenant(tenant_id, display_name='My Tenant', app=tenant_mgt_app)
311-
assert str(excinfo.value).startswith('Tenant ID must be a non-empty string')
311+
assert str(excinfo.value).startswith('Invalid tenant ID')
312312

313313
@pytest.mark.parametrize('display_name', [True, False, 1, 0, [], tuple(), {}])
314314
def test_invalid_display_name_type(self, display_name, tenant_mgt_app):

0 commit comments

Comments
 (0)