From aa47faa7d1d046403da99cd45f0f2ca9311fa74d Mon Sep 17 00:00:00 2001 From: WJH <40563566+loveclever@users.noreply.github.com> Date: Thu, 20 Jul 2023 11:23:06 +0800 Subject: [PATCH] optimize org saml (#5555) * optimize org saml * optimize log level * optimize code --- seahub/api2/endpoints/admin/organizations.py | 2 +- seahub/auth/views.py | 9 ++++++++- seahub/organizations/views.py | 2 +- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/seahub/api2/endpoints/admin/organizations.py b/seahub/api2/endpoints/admin/organizations.py index 02a484b86f..384ec9336e 100644 --- a/seahub/api2/endpoints/admin/organizations.py +++ b/seahub/api2/endpoints/admin/organizations.py @@ -90,7 +90,7 @@ def gen_org_url_prefix(max_trial=None, length=20): Url prefix if succed, otherwise, ``None``. """ def _gen_prefix(): - url_prefix = 'org_' + get_random_string( + url_prefix = 'org-' + get_random_string( length, allowed_chars='abcdefghijklmnopqrstuvwxyz0123456789') if ccnet_api.get_org_by_url_prefix(url_prefix) is not None: logger.error("org url prefix, %s is duplicated" % url_prefix) diff --git a/seahub/auth/views.py b/seahub/auth/views.py index 844396e769..98c32bca0f 100644 --- a/seahub/auth/views.py +++ b/seahub/auth/views.py @@ -475,14 +475,21 @@ def multi_adfs_sso(request): try: org_saml_config = OrgSAMLConfig.objects.get_config_by_domain(domain) + if not org_saml_config: + render_data['error_msg'] = "Cannot find a SAML/ADFS config for the organization related to domain %s." % domain + return render(request, template_name, render_data) org_id = org_saml_config.org_id org = ccnet_api.get_org_by_id(org_id) + if not org: + render_data['error_msg'] = 'Cannot find an organization related to domain %s.' % domain + return render(request, template_name, render_data) + url_prefix = org.url_prefix except Exception as e: logger.error(e) render_data['error_msg'] = 'Error, please contact administrator.' return render(request, template_name, render_data) - return HttpResponseRedirect('/org/custom/%s/saml2/login/' % org.url_prefix) + return HttpResponseRedirect('/org/custom/%s/saml2/login/' % url_prefix) if request.method == "GET": return render(request, template_name, render_data) diff --git a/seahub/organizations/views.py b/seahub/organizations/views.py index ec67b93b55..95b50ff4c6 100644 --- a/seahub/organizations/views.py +++ b/seahub/organizations/views.py @@ -154,7 +154,7 @@ def gen_org_url_prefix(max_trial=None): Url prefix if succed, otherwise, ``None``. """ def _gen_prefix(): - url_prefix = 'org_' + get_random_string( + url_prefix = 'org-' + get_random_string( 6, allowed_chars='abcdefghijklmnopqrstuvwxyz0123456789') if get_org_by_url_prefix(url_prefix) is not None: logger.info("org url prefix, %s is duplicated" % url_prefix)