'Return ``True`` if the authenticated user needs to associate an auth
service before performing actions with this provider.'

def needs_auth(self, user, **kwargs):

    if (self.auth_provider is None):
        return False
    organization = kwargs.get('organization')
    if organization:
        has_auth = OrganizationIntegration.objects.filter(integration__provider=self.auth_provider, organization=organization).exists()
        if has_auth:
            return False
    if (not user.is_authenticated()):
        return True
    return (not UserSocialAuth.objects.filter(user=user, provider=self.auth_provider).exists())
