Example #1
0
 def disconnect(self, *args, **kwargs):
     """
     Override of SAMLAuth.disconnect to unlink the learner from enterprise customer if associated.
     """
     from openedx.features.enterprise_support.api import unlink_enterprise_user_from_idp
     user = kwargs.get('user', None)
     unlink_enterprise_user_from_idp(self.strategy.request, user, self.name)
     return super(SAMLAuthBackend, self).disconnect(*args, **kwargs)
Example #2
0
    def test_unlink_enterprise_user_from_idp_no_customer_user(self, mock_customer_from_request, mock_registry):
        customer_idp = EnterpriseCustomerIdentityProviderFactory.create(
            provider_id='the-provider',
        )
        customer = customer_idp.enterprise_customer
        mock_customer_from_request.return_value = {
            'uuid': customer.uuid,
        }
        mock_registry.get_enabled_by_backend_name.return_value = [
            mock.Mock(provider_id='the-provider')
        ]
        request = mock.Mock()

        unlink_enterprise_user_from_idp(request, self.user, idp_backend_name='the-backend-name')

        assert 0 == EnterpriseCustomerUser.objects.filter(user_id=self.user.id).count()