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.