Compare commits
	
		
			4 Commits
		
	
	
		
			consistent
			...
			fix/issue_
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 13c8cbf03a | |||
| 1776981f29 | |||
| 5a4df95011 | |||
| f2927e5725 | 
@ -6,7 +6,7 @@ from django.utils.translation import gettext_lazy as _
 | 
				
			|||||||
from django_filters.filters import BooleanFilter
 | 
					from django_filters.filters import BooleanFilter
 | 
				
			||||||
from django_filters.filterset import FilterSet
 | 
					from django_filters.filterset import FilterSet
 | 
				
			||||||
from rest_framework import mixins
 | 
					from rest_framework import mixins
 | 
				
			||||||
from rest_framework.fields import ReadOnlyField, SerializerMethodField
 | 
					from rest_framework.fields import SerializerMethodField
 | 
				
			||||||
from rest_framework.viewsets import GenericViewSet
 | 
					from rest_framework.viewsets import GenericViewSet
 | 
				
			||||||
 | 
					
 | 
				
			||||||
from authentik.core.api.object_types import TypesMixin
 | 
					from authentik.core.api.object_types import TypesMixin
 | 
				
			||||||
@ -18,10 +18,10 @@ from authentik.core.models import Provider
 | 
				
			|||||||
class ProviderSerializer(ModelSerializer, MetaNameSerializer):
 | 
					class ProviderSerializer(ModelSerializer, MetaNameSerializer):
 | 
				
			||||||
    """Provider Serializer"""
 | 
					    """Provider Serializer"""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    assigned_application_slug = ReadOnlyField(source="application.slug")
 | 
					    assigned_application_slug = SerializerMethodField()
 | 
				
			||||||
    assigned_application_name = ReadOnlyField(source="application.name")
 | 
					    assigned_application_name = SerializerMethodField()
 | 
				
			||||||
    assigned_backchannel_application_slug = ReadOnlyField(source="backchannel_application.slug")
 | 
					    assigned_backchannel_application_slug = SerializerMethodField()
 | 
				
			||||||
    assigned_backchannel_application_name = ReadOnlyField(source="backchannel_application.name")
 | 
					    assigned_backchannel_application_name = SerializerMethodField()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    component = SerializerMethodField()
 | 
					    component = SerializerMethodField()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -31,6 +31,38 @@ class ProviderSerializer(ModelSerializer, MetaNameSerializer):
 | 
				
			|||||||
            return ""
 | 
					            return ""
 | 
				
			||||||
        return obj.component
 | 
					        return obj.component
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def get_assigned_application_slug(self, obj: Provider) -> str:
 | 
				
			||||||
 | 
					        """Get application slug, return empty string if no application exists"""
 | 
				
			||||||
 | 
					        try:
 | 
				
			||||||
 | 
					            return obj.application.slug
 | 
				
			||||||
 | 
					        except Provider.application.RelatedObjectDoesNotExist:
 | 
				
			||||||
 | 
					            return ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def get_assigned_application_name(self, obj: Provider) -> str:
 | 
				
			||||||
 | 
					        """Get application name, return empty string if no application exists"""
 | 
				
			||||||
 | 
					        try:
 | 
				
			||||||
 | 
					            return obj.application.name
 | 
				
			||||||
 | 
					        except Provider.application.RelatedObjectDoesNotExist:
 | 
				
			||||||
 | 
					            return ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def get_assigned_backchannel_application_slug(self, obj: Provider) -> str:
 | 
				
			||||||
 | 
					        """Get backchannel application slug.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Returns an empty string if no backchannel application exists.
 | 
				
			||||||
 | 
					        """
 | 
				
			||||||
 | 
					        if not obj.backchannel_application:
 | 
				
			||||||
 | 
					            return ""
 | 
				
			||||||
 | 
					        return obj.backchannel_application.slug or ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def get_assigned_backchannel_application_name(self, obj: Provider) -> str:
 | 
				
			||||||
 | 
					        """Get backchannel application name.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Returns an empty string if no backchannel application exists.
 | 
				
			||||||
 | 
					        """
 | 
				
			||||||
 | 
					        if not obj.backchannel_application:
 | 
				
			||||||
 | 
					            return ""
 | 
				
			||||||
 | 
					        return obj.backchannel_application.name or ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    class Meta:
 | 
					    class Meta:
 | 
				
			||||||
        model = Provider
 | 
					        model = Provider
 | 
				
			||||||
        fields = [
 | 
					        fields = [
 | 
				
			||||||
 | 
				
			|||||||
@ -133,6 +133,8 @@ class TestApplicationsAPI(APITestCase):
 | 
				
			|||||||
                        "provider_obj": {
 | 
					                        "provider_obj": {
 | 
				
			||||||
                            "assigned_application_name": "allowed",
 | 
					                            "assigned_application_name": "allowed",
 | 
				
			||||||
                            "assigned_application_slug": "allowed",
 | 
					                            "assigned_application_slug": "allowed",
 | 
				
			||||||
 | 
					                            "assigned_backchannel_application_name": "",
 | 
				
			||||||
 | 
					                            "assigned_backchannel_application_slug": "",
 | 
				
			||||||
                            "authentication_flow": None,
 | 
					                            "authentication_flow": None,
 | 
				
			||||||
                            "invalidation_flow": None,
 | 
					                            "invalidation_flow": None,
 | 
				
			||||||
                            "authorization_flow": str(self.provider.authorization_flow.pk),
 | 
					                            "authorization_flow": str(self.provider.authorization_flow.pk),
 | 
				
			||||||
@ -186,6 +188,8 @@ class TestApplicationsAPI(APITestCase):
 | 
				
			|||||||
                        "provider_obj": {
 | 
					                        "provider_obj": {
 | 
				
			||||||
                            "assigned_application_name": "allowed",
 | 
					                            "assigned_application_name": "allowed",
 | 
				
			||||||
                            "assigned_application_slug": "allowed",
 | 
					                            "assigned_application_slug": "allowed",
 | 
				
			||||||
 | 
					                            "assigned_backchannel_application_name": "",
 | 
				
			||||||
 | 
					                            "assigned_backchannel_application_slug": "",
 | 
				
			||||||
                            "authentication_flow": None,
 | 
					                            "authentication_flow": None,
 | 
				
			||||||
                            "invalidation_flow": None,
 | 
					                            "invalidation_flow": None,
 | 
				
			||||||
                            "authorization_flow": str(self.provider.authorization_flow.pk),
 | 
					                            "authorization_flow": str(self.provider.authorization_flow.pk),
 | 
				
			||||||
 | 
				
			|||||||
@ -3,7 +3,8 @@
 | 
				
			|||||||
from django.urls import reverse
 | 
					from django.urls import reverse
 | 
				
			||||||
from rest_framework.test import APITestCase
 | 
					from rest_framework.test import APITestCase
 | 
				
			||||||
 | 
					
 | 
				
			||||||
from authentik.core.models import PropertyMapping
 | 
					from authentik.core.api.providers import ProviderSerializer
 | 
				
			||||||
 | 
					from authentik.core.models import Application, PropertyMapping, Provider
 | 
				
			||||||
from authentik.core.tests.utils import create_test_admin_user
 | 
					from authentik.core.tests.utils import create_test_admin_user
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -24,3 +25,51 @@ class TestProvidersAPI(APITestCase):
 | 
				
			|||||||
            reverse("authentik_api:provider-types"),
 | 
					            reverse("authentik_api:provider-types"),
 | 
				
			||||||
        )
 | 
					        )
 | 
				
			||||||
        self.assertEqual(response.status_code, 200)
 | 
					        self.assertEqual(response.status_code, 200)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def test_provider_serializer_without_application(self):
 | 
				
			||||||
 | 
					        """Test that Provider serializer handles missing application gracefully"""
 | 
				
			||||||
 | 
					        # Create a provider without an application
 | 
				
			||||||
 | 
					        provider = Provider.objects.create(name="test-provider")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        serializer = ProviderSerializer(instance=provider)
 | 
				
			||||||
 | 
					        serialized_data = serializer.data
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        # Check that fields return empty strings when no application exists
 | 
				
			||||||
 | 
					        self.assertEqual(serialized_data["assigned_application_slug"], "")
 | 
				
			||||||
 | 
					        self.assertEqual(serialized_data["assigned_application_name"], "")
 | 
				
			||||||
 | 
					        self.assertEqual(serialized_data["assigned_backchannel_application_slug"], "")
 | 
				
			||||||
 | 
					        self.assertEqual(serialized_data["assigned_backchannel_application_name"], "")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def test_provider_serializer_with_application(self):
 | 
				
			||||||
 | 
					        """Test that Provider serializer correctly includes application data"""
 | 
				
			||||||
 | 
					        # Create an application
 | 
				
			||||||
 | 
					        app = Application.objects.create(name="Test App", slug="test-app")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        # Create a provider with an application
 | 
				
			||||||
 | 
					        provider = Provider.objects.create(name="test-provider-with-app")
 | 
				
			||||||
 | 
					        app.provider = provider
 | 
				
			||||||
 | 
					        app.save()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        serializer = ProviderSerializer(instance=provider)
 | 
				
			||||||
 | 
					        serialized_data = serializer.data
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        # Check that fields return correct values when application exists
 | 
				
			||||||
 | 
					        self.assertEqual(serialized_data["assigned_application_slug"], "test-app")
 | 
				
			||||||
 | 
					        self.assertEqual(serialized_data["assigned_application_name"], "Test App")
 | 
				
			||||||
 | 
					        self.assertEqual(serialized_data["assigned_backchannel_application_slug"], "")
 | 
				
			||||||
 | 
					        self.assertEqual(serialized_data["assigned_backchannel_application_name"], "")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def test_provider_api_response(self):
 | 
				
			||||||
 | 
					        """Test that the API response includes empty strings for missing applications"""
 | 
				
			||||||
 | 
					        # Create a provider without an application
 | 
				
			||||||
 | 
					        provider = Provider.objects.create(name="test-provider-api")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        response = self.client.get(
 | 
				
			||||||
 | 
					            reverse("authentik_api:provider-detail", kwargs={"pk": provider.pk}),
 | 
				
			||||||
 | 
					        )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        self.assertEqual(response.status_code, 200)
 | 
				
			||||||
 | 
					        self.assertEqual(response.data["assigned_application_slug"], "")
 | 
				
			||||||
 | 
					        self.assertEqual(response.data["assigned_application_name"], "")
 | 
				
			||||||
 | 
					        self.assertEqual(response.data["assigned_backchannel_application_slug"], "")
 | 
				
			||||||
 | 
					        self.assertEqual(response.data["assigned_backchannel_application_name"], "")
 | 
				
			||||||
 | 
				
			|||||||
@ -74,6 +74,8 @@ class TestEndpointsAPI(APITestCase):
 | 
				
			|||||||
                            "component": "ak-provider-rac-form",
 | 
					                            "component": "ak-provider-rac-form",
 | 
				
			||||||
                            "assigned_application_slug": self.app.slug,
 | 
					                            "assigned_application_slug": self.app.slug,
 | 
				
			||||||
                            "assigned_application_name": self.app.name,
 | 
					                            "assigned_application_name": self.app.name,
 | 
				
			||||||
 | 
					                            "assigned_backchannel_application_slug": "",
 | 
				
			||||||
 | 
					                            "assigned_backchannel_application_name": "",
 | 
				
			||||||
                            "verbose_name": "RAC Provider",
 | 
					                            "verbose_name": "RAC Provider",
 | 
				
			||||||
                            "verbose_name_plural": "RAC Providers",
 | 
					                            "verbose_name_plural": "RAC Providers",
 | 
				
			||||||
                            "meta_model_name": "authentik_providers_rac.racprovider",
 | 
					                            "meta_model_name": "authentik_providers_rac.racprovider",
 | 
				
			||||||
@ -124,6 +126,8 @@ class TestEndpointsAPI(APITestCase):
 | 
				
			|||||||
                            "component": "ak-provider-rac-form",
 | 
					                            "component": "ak-provider-rac-form",
 | 
				
			||||||
                            "assigned_application_slug": self.app.slug,
 | 
					                            "assigned_application_slug": self.app.slug,
 | 
				
			||||||
                            "assigned_application_name": self.app.name,
 | 
					                            "assigned_application_name": self.app.name,
 | 
				
			||||||
 | 
					                            "assigned_backchannel_application_slug": "",
 | 
				
			||||||
 | 
					                            "assigned_backchannel_application_name": "",
 | 
				
			||||||
                            "connection_expiry": "hours=8",
 | 
					                            "connection_expiry": "hours=8",
 | 
				
			||||||
                            "delete_token_on_disconnect": False,
 | 
					                            "delete_token_on_disconnect": False,
 | 
				
			||||||
                            "verbose_name": "RAC Provider",
 | 
					                            "verbose_name": "RAC Provider",
 | 
				
			||||||
@ -153,6 +157,8 @@ class TestEndpointsAPI(APITestCase):
 | 
				
			|||||||
                            "component": "ak-provider-rac-form",
 | 
					                            "component": "ak-provider-rac-form",
 | 
				
			||||||
                            "assigned_application_slug": self.app.slug,
 | 
					                            "assigned_application_slug": self.app.slug,
 | 
				
			||||||
                            "assigned_application_name": self.app.name,
 | 
					                            "assigned_application_name": self.app.name,
 | 
				
			||||||
 | 
					                            "assigned_backchannel_application_slug": "",
 | 
				
			||||||
 | 
					                            "assigned_backchannel_application_name": "",
 | 
				
			||||||
                            "connection_expiry": "hours=8",
 | 
					                            "connection_expiry": "hours=8",
 | 
				
			||||||
                            "delete_token_on_disconnect": False,
 | 
					                            "delete_token_on_disconnect": False,
 | 
				
			||||||
                            "verbose_name": "RAC Provider",
 | 
					                            "verbose_name": "RAC Provider",
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										142
									
								
								schema.yml
									
									
									
									
									
								
							
							
						
						
									
										142
									
								
								schema.yml
									
									
									
									
									
								
							@ -44141,11 +44141,17 @@ components:
 | 
				
			|||||||
          readOnly: true
 | 
					          readOnly: true
 | 
				
			||||||
        assigned_backchannel_application_slug:
 | 
					        assigned_backchannel_application_slug:
 | 
				
			||||||
          type: string
 | 
					          type: string
 | 
				
			||||||
          description: Internal application name, used in URLs.
 | 
					          description: |-
 | 
				
			||||||
 | 
					            Get backchannel application slug.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            Returns an empty string if no backchannel application exists.
 | 
				
			||||||
          readOnly: true
 | 
					          readOnly: true
 | 
				
			||||||
        assigned_backchannel_application_name:
 | 
					        assigned_backchannel_application_name:
 | 
				
			||||||
          type: string
 | 
					          type: string
 | 
				
			||||||
          description: Application's display Name.
 | 
					          description: |-
 | 
				
			||||||
 | 
					            Get backchannel application name.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            Returns an empty string if no backchannel application exists.
 | 
				
			||||||
          readOnly: true
 | 
					          readOnly: true
 | 
				
			||||||
        verbose_name:
 | 
					        verbose_name:
 | 
				
			||||||
          type: string
 | 
					          type: string
 | 
				
			||||||
@ -45675,19 +45681,27 @@ components:
 | 
				
			|||||||
          readOnly: true
 | 
					          readOnly: true
 | 
				
			||||||
        assigned_application_slug:
 | 
					        assigned_application_slug:
 | 
				
			||||||
          type: string
 | 
					          type: string
 | 
				
			||||||
          description: Internal application name, used in URLs.
 | 
					          description: Get application slug, return empty string if no application
 | 
				
			||||||
 | 
					            exists
 | 
				
			||||||
          readOnly: true
 | 
					          readOnly: true
 | 
				
			||||||
        assigned_application_name:
 | 
					        assigned_application_name:
 | 
				
			||||||
          type: string
 | 
					          type: string
 | 
				
			||||||
          description: Application's display Name.
 | 
					          description: Get application name, return empty string if no application
 | 
				
			||||||
 | 
					            exists
 | 
				
			||||||
          readOnly: true
 | 
					          readOnly: true
 | 
				
			||||||
        assigned_backchannel_application_slug:
 | 
					        assigned_backchannel_application_slug:
 | 
				
			||||||
          type: string
 | 
					          type: string
 | 
				
			||||||
          description: Internal application name, used in URLs.
 | 
					          description: |-
 | 
				
			||||||
 | 
					            Get backchannel application slug.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            Returns an empty string if no backchannel application exists.
 | 
				
			||||||
          readOnly: true
 | 
					          readOnly: true
 | 
				
			||||||
        assigned_backchannel_application_name:
 | 
					        assigned_backchannel_application_name:
 | 
				
			||||||
          type: string
 | 
					          type: string
 | 
				
			||||||
          description: Application's display Name.
 | 
					          description: |-
 | 
				
			||||||
 | 
					            Get backchannel application name.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            Returns an empty string if no backchannel application exists.
 | 
				
			||||||
          readOnly: true
 | 
					          readOnly: true
 | 
				
			||||||
        verbose_name:
 | 
					        verbose_name:
 | 
				
			||||||
          type: string
 | 
					          type: string
 | 
				
			||||||
@ -46395,11 +46409,17 @@ components:
 | 
				
			|||||||
          readOnly: true
 | 
					          readOnly: true
 | 
				
			||||||
        assigned_backchannel_application_slug:
 | 
					        assigned_backchannel_application_slug:
 | 
				
			||||||
          type: string
 | 
					          type: string
 | 
				
			||||||
          description: Internal application name, used in URLs.
 | 
					          description: |-
 | 
				
			||||||
 | 
					            Get backchannel application slug.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            Returns an empty string if no backchannel application exists.
 | 
				
			||||||
          readOnly: true
 | 
					          readOnly: true
 | 
				
			||||||
        assigned_backchannel_application_name:
 | 
					        assigned_backchannel_application_name:
 | 
				
			||||||
          type: string
 | 
					          type: string
 | 
				
			||||||
          description: Application's display Name.
 | 
					          description: |-
 | 
				
			||||||
 | 
					            Get backchannel application name.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            Returns an empty string if no backchannel application exists.
 | 
				
			||||||
          readOnly: true
 | 
					          readOnly: true
 | 
				
			||||||
        verbose_name:
 | 
					        verbose_name:
 | 
				
			||||||
          type: string
 | 
					          type: string
 | 
				
			||||||
@ -47022,19 +47042,27 @@ components:
 | 
				
			|||||||
          readOnly: true
 | 
					          readOnly: true
 | 
				
			||||||
        assigned_application_slug:
 | 
					        assigned_application_slug:
 | 
				
			||||||
          type: string
 | 
					          type: string
 | 
				
			||||||
          description: Internal application name, used in URLs.
 | 
					          description: Get application slug, return empty string if no application
 | 
				
			||||||
 | 
					            exists
 | 
				
			||||||
          readOnly: true
 | 
					          readOnly: true
 | 
				
			||||||
        assigned_application_name:
 | 
					        assigned_application_name:
 | 
				
			||||||
          type: string
 | 
					          type: string
 | 
				
			||||||
          description: Application's display Name.
 | 
					          description: Get application name, return empty string if no application
 | 
				
			||||||
 | 
					            exists
 | 
				
			||||||
          readOnly: true
 | 
					          readOnly: true
 | 
				
			||||||
        assigned_backchannel_application_slug:
 | 
					        assigned_backchannel_application_slug:
 | 
				
			||||||
          type: string
 | 
					          type: string
 | 
				
			||||||
          description: Internal application name, used in URLs.
 | 
					          description: |-
 | 
				
			||||||
 | 
					            Get backchannel application slug.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            Returns an empty string if no backchannel application exists.
 | 
				
			||||||
          readOnly: true
 | 
					          readOnly: true
 | 
				
			||||||
        assigned_backchannel_application_name:
 | 
					        assigned_backchannel_application_name:
 | 
				
			||||||
          type: string
 | 
					          type: string
 | 
				
			||||||
          description: Application's display Name.
 | 
					          description: |-
 | 
				
			||||||
 | 
					            Get backchannel application name.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            Returns an empty string if no backchannel application exists.
 | 
				
			||||||
          readOnly: true
 | 
					          readOnly: true
 | 
				
			||||||
        verbose_name:
 | 
					        verbose_name:
 | 
				
			||||||
          type: string
 | 
					          type: string
 | 
				
			||||||
@ -53848,19 +53876,27 @@ components:
 | 
				
			|||||||
          readOnly: true
 | 
					          readOnly: true
 | 
				
			||||||
        assigned_application_slug:
 | 
					        assigned_application_slug:
 | 
				
			||||||
          type: string
 | 
					          type: string
 | 
				
			||||||
          description: Internal application name, used in URLs.
 | 
					          description: Get application slug, return empty string if no application
 | 
				
			||||||
 | 
					            exists
 | 
				
			||||||
          readOnly: true
 | 
					          readOnly: true
 | 
				
			||||||
        assigned_application_name:
 | 
					        assigned_application_name:
 | 
				
			||||||
          type: string
 | 
					          type: string
 | 
				
			||||||
          description: Application's display Name.
 | 
					          description: Get application name, return empty string if no application
 | 
				
			||||||
 | 
					            exists
 | 
				
			||||||
          readOnly: true
 | 
					          readOnly: true
 | 
				
			||||||
        assigned_backchannel_application_slug:
 | 
					        assigned_backchannel_application_slug:
 | 
				
			||||||
          type: string
 | 
					          type: string
 | 
				
			||||||
          description: Internal application name, used in URLs.
 | 
					          description: |-
 | 
				
			||||||
 | 
					            Get backchannel application slug.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            Returns an empty string if no backchannel application exists.
 | 
				
			||||||
          readOnly: true
 | 
					          readOnly: true
 | 
				
			||||||
        assigned_backchannel_application_name:
 | 
					        assigned_backchannel_application_name:
 | 
				
			||||||
          type: string
 | 
					          type: string
 | 
				
			||||||
          description: Application's display Name.
 | 
					          description: |-
 | 
				
			||||||
 | 
					            Get backchannel application name.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            Returns an empty string if no backchannel application exists.
 | 
				
			||||||
          readOnly: true
 | 
					          readOnly: true
 | 
				
			||||||
        verbose_name:
 | 
					        verbose_name:
 | 
				
			||||||
          type: string
 | 
					          type: string
 | 
				
			||||||
@ -54089,19 +54125,27 @@ components:
 | 
				
			|||||||
          readOnly: true
 | 
					          readOnly: true
 | 
				
			||||||
        assigned_application_slug:
 | 
					        assigned_application_slug:
 | 
				
			||||||
          type: string
 | 
					          type: string
 | 
				
			||||||
          description: Internal application name, used in URLs.
 | 
					          description: Get application slug, return empty string if no application
 | 
				
			||||||
 | 
					            exists
 | 
				
			||||||
          readOnly: true
 | 
					          readOnly: true
 | 
				
			||||||
        assigned_application_name:
 | 
					        assigned_application_name:
 | 
				
			||||||
          type: string
 | 
					          type: string
 | 
				
			||||||
          description: Application's display Name.
 | 
					          description: Get application name, return empty string if no application
 | 
				
			||||||
 | 
					            exists
 | 
				
			||||||
          readOnly: true
 | 
					          readOnly: true
 | 
				
			||||||
        assigned_backchannel_application_slug:
 | 
					        assigned_backchannel_application_slug:
 | 
				
			||||||
          type: string
 | 
					          type: string
 | 
				
			||||||
          description: Internal application name, used in URLs.
 | 
					          description: |-
 | 
				
			||||||
 | 
					            Get backchannel application slug.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            Returns an empty string if no backchannel application exists.
 | 
				
			||||||
          readOnly: true
 | 
					          readOnly: true
 | 
				
			||||||
        assigned_backchannel_application_name:
 | 
					        assigned_backchannel_application_name:
 | 
				
			||||||
          type: string
 | 
					          type: string
 | 
				
			||||||
          description: Application's display Name.
 | 
					          description: |-
 | 
				
			||||||
 | 
					            Get backchannel application name.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            Returns an empty string if no backchannel application exists.
 | 
				
			||||||
          readOnly: true
 | 
					          readOnly: true
 | 
				
			||||||
        verbose_name:
 | 
					        verbose_name:
 | 
				
			||||||
          type: string
 | 
					          type: string
 | 
				
			||||||
@ -54408,19 +54452,27 @@ components:
 | 
				
			|||||||
          readOnly: true
 | 
					          readOnly: true
 | 
				
			||||||
        assigned_application_slug:
 | 
					        assigned_application_slug:
 | 
				
			||||||
          type: string
 | 
					          type: string
 | 
				
			||||||
          description: Internal application name, used in URLs.
 | 
					          description: Get application slug, return empty string if no application
 | 
				
			||||||
 | 
					            exists
 | 
				
			||||||
          readOnly: true
 | 
					          readOnly: true
 | 
				
			||||||
        assigned_application_name:
 | 
					        assigned_application_name:
 | 
				
			||||||
          type: string
 | 
					          type: string
 | 
				
			||||||
          description: Application's display Name.
 | 
					          description: Get application name, return empty string if no application
 | 
				
			||||||
 | 
					            exists
 | 
				
			||||||
          readOnly: true
 | 
					          readOnly: true
 | 
				
			||||||
        assigned_backchannel_application_slug:
 | 
					        assigned_backchannel_application_slug:
 | 
				
			||||||
          type: string
 | 
					          type: string
 | 
				
			||||||
          description: Internal application name, used in URLs.
 | 
					          description: |-
 | 
				
			||||||
 | 
					            Get backchannel application slug.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            Returns an empty string if no backchannel application exists.
 | 
				
			||||||
          readOnly: true
 | 
					          readOnly: true
 | 
				
			||||||
        assigned_backchannel_application_name:
 | 
					        assigned_backchannel_application_name:
 | 
				
			||||||
          type: string
 | 
					          type: string
 | 
				
			||||||
          description: Application's display Name.
 | 
					          description: |-
 | 
				
			||||||
 | 
					            Get backchannel application name.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            Returns an empty string if no backchannel application exists.
 | 
				
			||||||
          readOnly: true
 | 
					          readOnly: true
 | 
				
			||||||
        verbose_name:
 | 
					        verbose_name:
 | 
				
			||||||
          type: string
 | 
					          type: string
 | 
				
			||||||
@ -54573,19 +54625,27 @@ components:
 | 
				
			|||||||
          readOnly: true
 | 
					          readOnly: true
 | 
				
			||||||
        assigned_application_slug:
 | 
					        assigned_application_slug:
 | 
				
			||||||
          type: string
 | 
					          type: string
 | 
				
			||||||
          description: Internal application name, used in URLs.
 | 
					          description: Get application slug, return empty string if no application
 | 
				
			||||||
 | 
					            exists
 | 
				
			||||||
          readOnly: true
 | 
					          readOnly: true
 | 
				
			||||||
        assigned_application_name:
 | 
					        assigned_application_name:
 | 
				
			||||||
          type: string
 | 
					          type: string
 | 
				
			||||||
          description: Application's display Name.
 | 
					          description: Get application name, return empty string if no application
 | 
				
			||||||
 | 
					            exists
 | 
				
			||||||
          readOnly: true
 | 
					          readOnly: true
 | 
				
			||||||
        assigned_backchannel_application_slug:
 | 
					        assigned_backchannel_application_slug:
 | 
				
			||||||
          type: string
 | 
					          type: string
 | 
				
			||||||
          description: Internal application name, used in URLs.
 | 
					          description: |-
 | 
				
			||||||
 | 
					            Get backchannel application slug.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            Returns an empty string if no backchannel application exists.
 | 
				
			||||||
          readOnly: true
 | 
					          readOnly: true
 | 
				
			||||||
        assigned_backchannel_application_name:
 | 
					        assigned_backchannel_application_name:
 | 
				
			||||||
          type: string
 | 
					          type: string
 | 
				
			||||||
          description: Application's display Name.
 | 
					          description: |-
 | 
				
			||||||
 | 
					            Get backchannel application name.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            Returns an empty string if no backchannel application exists.
 | 
				
			||||||
          readOnly: true
 | 
					          readOnly: true
 | 
				
			||||||
        verbose_name:
 | 
					        verbose_name:
 | 
				
			||||||
          type: string
 | 
					          type: string
 | 
				
			||||||
@ -55185,19 +55245,27 @@ components:
 | 
				
			|||||||
          readOnly: true
 | 
					          readOnly: true
 | 
				
			||||||
        assigned_application_slug:
 | 
					        assigned_application_slug:
 | 
				
			||||||
          type: string
 | 
					          type: string
 | 
				
			||||||
          description: Internal application name, used in URLs.
 | 
					          description: Get application slug, return empty string if no application
 | 
				
			||||||
 | 
					            exists
 | 
				
			||||||
          readOnly: true
 | 
					          readOnly: true
 | 
				
			||||||
        assigned_application_name:
 | 
					        assigned_application_name:
 | 
				
			||||||
          type: string
 | 
					          type: string
 | 
				
			||||||
          description: Application's display Name.
 | 
					          description: Get application name, return empty string if no application
 | 
				
			||||||
 | 
					            exists
 | 
				
			||||||
          readOnly: true
 | 
					          readOnly: true
 | 
				
			||||||
        assigned_backchannel_application_slug:
 | 
					        assigned_backchannel_application_slug:
 | 
				
			||||||
          type: string
 | 
					          type: string
 | 
				
			||||||
          description: Internal application name, used in URLs.
 | 
					          description: |-
 | 
				
			||||||
 | 
					            Get backchannel application slug.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            Returns an empty string if no backchannel application exists.
 | 
				
			||||||
          readOnly: true
 | 
					          readOnly: true
 | 
				
			||||||
        assigned_backchannel_application_name:
 | 
					        assigned_backchannel_application_name:
 | 
				
			||||||
          type: string
 | 
					          type: string
 | 
				
			||||||
          description: Application's display Name.
 | 
					          description: |-
 | 
				
			||||||
 | 
					            Get backchannel application name.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            Returns an empty string if no backchannel application exists.
 | 
				
			||||||
          readOnly: true
 | 
					          readOnly: true
 | 
				
			||||||
        verbose_name:
 | 
					        verbose_name:
 | 
				
			||||||
          type: string
 | 
					          type: string
 | 
				
			||||||
@ -55900,11 +55968,17 @@ components:
 | 
				
			|||||||
          readOnly: true
 | 
					          readOnly: true
 | 
				
			||||||
        assigned_backchannel_application_slug:
 | 
					        assigned_backchannel_application_slug:
 | 
				
			||||||
          type: string
 | 
					          type: string
 | 
				
			||||||
          description: Internal application name, used in URLs.
 | 
					          description: |-
 | 
				
			||||||
 | 
					            Get backchannel application slug.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            Returns an empty string if no backchannel application exists.
 | 
				
			||||||
          readOnly: true
 | 
					          readOnly: true
 | 
				
			||||||
        assigned_backchannel_application_name:
 | 
					        assigned_backchannel_application_name:
 | 
				
			||||||
          type: string
 | 
					          type: string
 | 
				
			||||||
          description: Application's display Name.
 | 
					          description: |-
 | 
				
			||||||
 | 
					            Get backchannel application name.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            Returns an empty string if no backchannel application exists.
 | 
				
			||||||
          readOnly: true
 | 
					          readOnly: true
 | 
				
			||||||
        verbose_name:
 | 
					        verbose_name:
 | 
				
			||||||
          type: string
 | 
					          type: string
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user