mirror of
				https://gitlab.crans.org/bde/nk20
				synced 2025-10-31 15:50:03 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			36 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			36 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| # Copyright (C) 2018-2025 by BDE ENS Paris-Saclay
 | |
| # SPDX-License-Identifier: GPL-3.0-or-later
 | |
| 
 | |
| from django_filters.rest_framework import DjangoFilterBackend
 | |
| from api.filters import RegexSafeSearchFilter
 | |
| from api.viewsets import ReadOnlyProtectedModelViewSet
 | |
| 
 | |
| from .serializers import PermissionSerializer, RoleSerializer
 | |
| from ..models import Permission, Role
 | |
| 
 | |
| 
 | |
| class PermissionViewSet(ReadOnlyProtectedModelViewSet):
 | |
|     """
 | |
|     REST API View set.
 | |
|     The djangorestframework plugin will get all `Permission` objects, serialize it to JSON with the given serializer,
 | |
|     then render it on /api/permission/permission/
 | |
|     """
 | |
|     queryset = Permission.objects.order_by('id')
 | |
|     serializer_class = PermissionSerializer
 | |
|     filter_backends = [DjangoFilterBackend, RegexSafeSearchFilter]
 | |
|     filterset_fields = ['model', 'type', 'query', 'mask', 'field', 'permanent', ]
 | |
|     search_fields = ['$model__model', '$query', '$description', ]
 | |
| 
 | |
| 
 | |
| class RoleViewSet(ReadOnlyProtectedModelViewSet):
 | |
|     """
 | |
|     REST API View set.
 | |
|     The djangorestframework plugin will get all `RolePermission` objects, serialize it to JSON with the given serializer
 | |
|     then render it on /api/permission/roles/
 | |
|     """
 | |
|     queryset = Role.objects.order_by('id')
 | |
|     serializer_class = RoleSerializer
 | |
|     filter_backends = [DjangoFilterBackend, RegexSafeSearchFilter]
 | |
|     filterset_fields = ['name', 'permissions', 'for_club', 'memberships__user', ]
 | |
|     search_fields = ['$name', '$for_club__name', ]
 |