authentik.policies.expression.api

Expression Policy API

 1"""Expression Policy API"""
 2
 3from rest_framework.viewsets import ModelViewSet
 4
 5from authentik.core.api.used_by import UsedByMixin
 6from authentik.policies.api.policies import PolicySerializer
 7from authentik.policies.expression.evaluator import PolicyEvaluator
 8from authentik.policies.expression.models import ExpressionPolicy
 9
10
11class ExpressionPolicySerializer(PolicySerializer):
12    """Group Membership Policy Serializer"""
13
14    def validate_expression(self, expr: str) -> str:
15        """validate the syntax of the expression"""
16        name = "temp-policy" if not self.instance else self.instance.name
17        PolicyEvaluator(name).validate(expr)
18        return expr
19
20    class Meta:
21        model = ExpressionPolicy
22        fields = PolicySerializer.Meta.fields + ["expression"]
23
24
25class ExpressionPolicyViewSet(UsedByMixin, ModelViewSet):
26    """Source Viewset"""
27
28    queryset = ExpressionPolicy.objects.all()
29    serializer_class = ExpressionPolicySerializer
30    filterset_fields = "__all__"
31    ordering = ["name"]
32    search_fields = ["name"]
class ExpressionPolicySerializer(authentik.policies.api.policies.PolicySerializer):
12class ExpressionPolicySerializer(PolicySerializer):
13    """Group Membership Policy Serializer"""
14
15    def validate_expression(self, expr: str) -> str:
16        """validate the syntax of the expression"""
17        name = "temp-policy" if not self.instance else self.instance.name
18        PolicyEvaluator(name).validate(expr)
19        return expr
20
21    class Meta:
22        model = ExpressionPolicy
23        fields = PolicySerializer.Meta.fields + ["expression"]

Group Membership Policy Serializer

def validate_expression(self, expr: str) -> str:
15    def validate_expression(self, expr: str) -> str:
16        """validate the syntax of the expression"""
17        name = "temp-policy" if not self.instance else self.instance.name
18        PolicyEvaluator(name).validate(expr)
19        return expr

validate the syntax of the expression

class ExpressionPolicySerializer.Meta:
21    class Meta:
22        model = ExpressionPolicy
23        fields = PolicySerializer.Meta.fields + ["expression"]
fields = ['pk', 'name', 'execution_logging', 'component', 'verbose_name', 'verbose_name_plural', 'meta_model_name', 'bound_to', 'expression']
class ExpressionPolicyViewSet(authentik.core.api.used_by.UsedByMixin, rest_framework.viewsets.ModelViewSet):
26class ExpressionPolicyViewSet(UsedByMixin, ModelViewSet):
27    """Source Viewset"""
28
29    queryset = ExpressionPolicy.objects.all()
30    serializer_class = ExpressionPolicySerializer
31    filterset_fields = "__all__"
32    ordering = ["name"]
33    search_fields = ["name"]

Source Viewset

queryset = <InheritanceQuerySet []>
serializer_class = <class 'ExpressionPolicySerializer'>
filterset_fields = '__all__'
ordering = ['name']
search_fields = ['name']
name = None
description = None
suffix = None
detail = None
basename = None