Skip to content

External pages

Зачастую есть необходимость хранить данные о доступе к каким-либо частям клиентского приложения.

Вам нужно в ручном режиме создать записи в таблице DynamicEndpointPermission. С флагом external=True, указав url данные о странице в удобном для клиентского приложения формате.

Затем необходимо добавить в urls соответствующую view:

from advantage.dynamic_roles.views import GetAvailableExternalPages

которая будет обеспечивать необходимую логику:

class GetAvailableExternalPages(APIView):  
    permission_classes = [IsAuthenticated]  

    def get(self, request):  
        qs = DynamicEndpointPermission.objects.filter(external=True)  
        urls = [obj.url for obj in qs if request.user.has_perm(get_perm_name(obj))]  
        return Response(urls)

ВАЖНО! Чтобы у пользователя при выполнении метода GetAvailableExternalPages появилась определённая страница, ему необходимо выдать соответствующую этой странице Permission.