Разрешения Django при использовании Django Rest Framework + VueJs в качестве фронта - PullRequest
0 голосов
/ 17 октября 2018

Мой вопрос, касающийся использования Архитектуры разрешений Django , даже когда передняя панель включена Vue.js и данные запрашиваются / отвечают через Django REST framework.

Я немного запуталсяо возможности использования библиотек разрешений Django по умолчанию, когда приложение комбинируется с Rest Framework и VueJs:

из django.contrib.auth.decorators import login_required, Разрешение_required

@permission_required('pobapp.can_add_instance')
@login_required
def addEmployeeInstance(request):
    return render(request, 'pobapp/search.html')

Если нет, как я могу ограничить некоторые данные и страницы для конкретных пользователей?Например, если бы я только хотел, чтобы аутентифицированные пользователи могли просматривать некоторые конкретные страницы?

1 Ответ

0 голосов
/ 17 октября 2018

Если вы хотите ограничить зарегистрированного пользователя на страницах, сначала вы должны определить роль и модель ресурсов для модели пользователя.

Затем вы можете определить класс разрешений для управления этим ограничением.например, мой класс разрешений для этой цели такой,

class IsAuthRolePermission(permissions.BasePermission):

    def has_permission(self, request, view):

        if request.user.is_authenticated:
            try:
                obj = Resource.objects.get(name=view.__class__.__name__,
                                       roles__in=request.user.roles.all())
                return True
            except Resource.DoesNotExist:
                return False
        else:
            return False
...