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)