From 6abe831d7af2443e9ec71a2d6e11843c4cf48cde Mon Sep 17 00:00:00 2001 From: Kira Date: Thu, 21 Apr 2022 15:38:19 -0400 Subject: [PATCH 1/4] fix: allow for multiple customer idps --- .../samlproviderconfig/views.py | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/common/djangoapps/third_party_auth/samlproviderconfig/views.py b/common/djangoapps/third_party_auth/samlproviderconfig/views.py index a8cdb40d7d..e338d60bc1 100644 --- a/common/djangoapps/third_party_auth/samlproviderconfig/views.py +++ b/common/djangoapps/third_party_auth/samlproviderconfig/views.py @@ -2,7 +2,7 @@ Viewset for auth/saml/v0/samlproviderconfig """ -from django.shortcuts import get_object_or_404 +from django.shortcuts import get_list_or_404 from edx_rbac.mixins import PermissionRequiredMixin from edx_rest_framework_extensions.auth.jwt.authentication import JwtAuthentication from rest_framework import permissions, viewsets, status @@ -54,12 +54,21 @@ class SAMLProviderConfigViewSet(PermissionRequiredMixin, SAMLProviderMixin, view """ if self.requested_enterprise_uuid is None: raise ParseError('Required enterprise_customer_uuid is missing') - enterprise_customer_idp = get_object_or_404( + enterprise_customer_idps = get_list_or_404( EnterpriseCustomerIdentityProvider, enterprise_customer__uuid=self.requested_enterprise_uuid ) - return SAMLProviderConfig.objects.current_set().filter( - slug=convert_saml_slug_provider_id(enterprise_customer_idp.provider_id)) + slug_list = [] + config_list = [] + for idp in enterprise_customer_idps: + slug_list.append(convert_saml_slug_provider_id(idp.provider_id)) + + for config in SAMLProviderConfig.objects.current_set(): + slug = convert_saml_slug_provider_id(config.provider_id) + if slug in slug_list: + config_list.append(config) + + return config_list @property def requested_enterprise_uuid(self): From 5d7f340b5f48e71b40d0ec59245e427d6fd52c64 Mon Sep 17 00:00:00 2001 From: Kira Date: Thu, 21 Apr 2022 16:02:44 -0400 Subject: [PATCH 2/4] fix: formatting fix --- .../djangoapps/third_party_auth/samlproviderconfig/views.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/common/djangoapps/third_party_auth/samlproviderconfig/views.py b/common/djangoapps/third_party_auth/samlproviderconfig/views.py index e338d60bc1..95c8c6b32c 100644 --- a/common/djangoapps/third_party_auth/samlproviderconfig/views.py +++ b/common/djangoapps/third_party_auth/samlproviderconfig/views.py @@ -58,14 +58,14 @@ class SAMLProviderConfigViewSet(PermissionRequiredMixin, SAMLProviderMixin, view EnterpriseCustomerIdentityProvider, enterprise_customer__uuid=self.requested_enterprise_uuid ) - slug_list = [] + slug_list = [] config_list = [] for idp in enterprise_customer_idps: slug_list.append(convert_saml_slug_provider_id(idp.provider_id)) for config in SAMLProviderConfig.objects.current_set(): slug = convert_saml_slug_provider_id(config.provider_id) - if slug in slug_list: + if slug in slug_list: config_list.append(config) return config_list From 2cbba5b4c819b7156448c751cb6cc01936d30650 Mon Sep 17 00:00:00 2001 From: Kira Date: Thu, 21 Apr 2022 16:33:56 -0400 Subject: [PATCH 3/4] fix: PR requests --- .../third_party_auth/samlproviderconfig/views.py | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/common/djangoapps/third_party_auth/samlproviderconfig/views.py b/common/djangoapps/third_party_auth/samlproviderconfig/views.py index 95c8c6b32c..90fca52303 100644 --- a/common/djangoapps/third_party_auth/samlproviderconfig/views.py +++ b/common/djangoapps/third_party_auth/samlproviderconfig/views.py @@ -58,17 +58,8 @@ class SAMLProviderConfigViewSet(PermissionRequiredMixin, SAMLProviderMixin, view EnterpriseCustomerIdentityProvider, enterprise_customer__uuid=self.requested_enterprise_uuid ) - slug_list = [] - config_list = [] - for idp in enterprise_customer_idps: - slug_list.append(convert_saml_slug_provider_id(idp.provider_id)) - - for config in SAMLProviderConfig.objects.current_set(): - slug = convert_saml_slug_provider_id(config.provider_id) - if slug in slug_list: - config_list.append(config) - - return config_list + slug_list = [ idp.provider_id for idp in enterprise_customer_idps ] + return [ config for config in SAMLProviderConfig.objects.current_set() if config.provider_id in slug_list ] @property def requested_enterprise_uuid(self): From 392c8fdba8b404f5a1b0cc215910c7c13d57d21e Mon Sep 17 00:00:00 2001 From: Kira Date: Fri, 22 Apr 2022 10:05:36 -0400 Subject: [PATCH 4/4] fix: quality fixes --- .../djangoapps/third_party_auth/samlproviderconfig/views.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/common/djangoapps/third_party_auth/samlproviderconfig/views.py b/common/djangoapps/third_party_auth/samlproviderconfig/views.py index 90fca52303..ac4832f4ef 100644 --- a/common/djangoapps/third_party_auth/samlproviderconfig/views.py +++ b/common/djangoapps/third_party_auth/samlproviderconfig/views.py @@ -58,8 +58,8 @@ class SAMLProviderConfigViewSet(PermissionRequiredMixin, SAMLProviderMixin, view EnterpriseCustomerIdentityProvider, enterprise_customer__uuid=self.requested_enterprise_uuid ) - slug_list = [ idp.provider_id for idp in enterprise_customer_idps ] - return [ config for config in SAMLProviderConfig.objects.current_set() if config.provider_id in slug_list ] + slug_list = [idp.provider_id for idp in enterprise_customer_idps] + return [config for config in SAMLProviderConfig.objects.current_set() if config.provider_id in slug_list] @property def requested_enterprise_uuid(self):