authentik.core.api.application_entitlements
Application Roles API Viewset
1"""Application Roles API Viewset""" 2 3from django.http import HttpRequest 4from django.utils.translation import gettext_lazy as _ 5from rest_framework.exceptions import ValidationError 6from rest_framework.viewsets import ModelViewSet 7 8from authentik.blueprints.v1.importer import SERIALIZER_CONTEXT_BLUEPRINT 9from authentik.core.api.used_by import UsedByMixin 10from authentik.core.api.utils import ModelSerializer 11from authentik.core.models import ( 12 Application, 13 ApplicationEntitlement, 14) 15 16 17class ApplicationEntitlementSerializer(ModelSerializer): 18 """ApplicationEntitlement Serializer""" 19 20 def validate_app(self, app: Application) -> Application: 21 """Ensure user has permission to view""" 22 request: HttpRequest = self.context.get("request") 23 if not request and SERIALIZER_CONTEXT_BLUEPRINT in self.context: 24 return app 25 user = request.user 26 if user.has_perm("view_application", app) or user.has_perm( 27 "authentik_core.view_application" 28 ): 29 return app 30 raise ValidationError(_("User does not have access to application."), code="invalid") 31 32 class Meta: 33 model = ApplicationEntitlement 34 fields = [ 35 "pbm_uuid", 36 "name", 37 "app", 38 "attributes", 39 ] 40 41 42class ApplicationEntitlementViewSet(UsedByMixin, ModelViewSet): 43 """ApplicationEntitlement Viewset""" 44 45 queryset = ApplicationEntitlement.objects.all() 46 serializer_class = ApplicationEntitlementSerializer 47 search_fields = [ 48 "pbm_uuid", 49 "name", 50 "app", 51 "attributes", 52 ] 53 filterset_fields = [ 54 "pbm_uuid", 55 "name", 56 "app", 57 ] 58 ordering = ["name"]
18class ApplicationEntitlementSerializer(ModelSerializer): 19 """ApplicationEntitlement Serializer""" 20 21 def validate_app(self, app: Application) -> Application: 22 """Ensure user has permission to view""" 23 request: HttpRequest = self.context.get("request") 24 if not request and SERIALIZER_CONTEXT_BLUEPRINT in self.context: 25 return app 26 user = request.user 27 if user.has_perm("view_application", app) or user.has_perm( 28 "authentik_core.view_application" 29 ): 30 return app 31 raise ValidationError(_("User does not have access to application."), code="invalid") 32 33 class Meta: 34 model = ApplicationEntitlement 35 fields = [ 36 "pbm_uuid", 37 "name", 38 "app", 39 "attributes", 40 ]
ApplicationEntitlement Serializer
def
validate_app( self, app: authentik.core.models.Application) -> authentik.core.models.Application:
21 def validate_app(self, app: Application) -> Application: 22 """Ensure user has permission to view""" 23 request: HttpRequest = self.context.get("request") 24 if not request and SERIALIZER_CONTEXT_BLUEPRINT in self.context: 25 return app 26 user = request.user 27 if user.has_perm("view_application", app) or user.has_perm( 28 "authentik_core.view_application" 29 ): 30 return app 31 raise ValidationError(_("User does not have access to application."), code="invalid")
Ensure user has permission to view
Inherited Members
class
ApplicationEntitlementSerializer.Meta:
33 class Meta: 34 model = ApplicationEntitlement 35 fields = [ 36 "pbm_uuid", 37 "name", 38 "app", 39 "attributes", 40 ]
model =
<class 'authentik.core.models.ApplicationEntitlement'>
class
ApplicationEntitlementViewSet(authentik.core.api.used_by.UsedByMixin, rest_framework.viewsets.ModelViewSet):
43class ApplicationEntitlementViewSet(UsedByMixin, ModelViewSet): 44 """ApplicationEntitlement Viewset""" 45 46 queryset = ApplicationEntitlement.objects.all() 47 serializer_class = ApplicationEntitlementSerializer 48 search_fields = [ 49 "pbm_uuid", 50 "name", 51 "app", 52 "attributes", 53 ] 54 filterset_fields = [ 55 "pbm_uuid", 56 "name", 57 "app", 58 ] 59 ordering = ["name"]
ApplicationEntitlement Viewset
serializer_class =
<class 'ApplicationEntitlementSerializer'>