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"]
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
Inherited Members
class
ExpressionPolicySerializer.Meta:
21 class Meta: 22 model = ExpressionPolicy 23 fields = PolicySerializer.Meta.fields + ["expression"]
model =
<class 'authentik.policies.expression.models.ExpressionPolicy'>
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
serializer_class =
<class 'ExpressionPolicySerializer'>