authentik.enterprise.search.schema
1from djangoql.serializers import DjangoQLSchemaSerializer 2from drf_spectacular.generators import SchemaGenerator 3 4from authentik.enterprise.search.fields import JSONSearchField 5from authentik.enterprise.search.ql import AUTOCOMPLETE_SCHEMA 6 7 8class AKQLSchemaSerializer(DjangoQLSchemaSerializer): 9 def serialize(self, schema): 10 serialization = super().serialize(schema) 11 for _, fields in schema.models.items(): 12 for _, field in fields.items(): 13 if not isinstance(field, JSONSearchField): 14 continue 15 serialization["models"].update(field.get_nested_options(self)) 16 return serialization 17 18 def serialize_field(self, field): 19 result = super().serialize_field(field) 20 if isinstance(field, JSONSearchField): 21 result["relation"] = field.relation() 22 return result 23 24 25def postprocess_schema_search_autocomplete(result, generator: SchemaGenerator, **kwargs): 26 generator.registry.register_on_missing(AUTOCOMPLETE_SCHEMA) 27 28 return result
class
AKQLSchemaSerializer(djangoql.serializers.DjangoQLSchemaSerializer):
9class AKQLSchemaSerializer(DjangoQLSchemaSerializer): 10 def serialize(self, schema): 11 serialization = super().serialize(schema) 12 for _, fields in schema.models.items(): 13 for _, field in fields.items(): 14 if not isinstance(field, JSONSearchField): 15 continue 16 serialization["models"].update(field.get_nested_options(self)) 17 return serialization 18 19 def serialize_field(self, field): 20 result = super().serialize_field(field) 21 if isinstance(field, JSONSearchField): 22 result["relation"] = field.relation() 23 return result
def
serialize(self, schema):
10 def serialize(self, schema): 11 serialization = super().serialize(schema) 12 for _, fields in schema.models.items(): 13 for _, field in fields.items(): 14 if not isinstance(field, JSONSearchField): 15 continue 16 serialization["models"].update(field.get_nested_options(self)) 17 return serialization
def
postprocess_schema_search_autocomplete( result, generator: drf_spectacular.generators.SchemaGenerator, **kwargs):