@IVBAN

Как разграничить права доступа в Django?

Добавил нового пользователя ( кроме суперюзера ), создал группу, добавил в эту группу права только на просмотр+1модель на изменение. Добавил созданному пользователю эту группу. Как я понимаю, теперь у этого пользователя есть только эти права. Есть представление для авторизации:
def userlogin(request):

    form = LoginForm()

    if request.method == 'POST':

        logout(request)

        username = request.POST.get('u')
        password = request.POST.get('p')

        print(username+'    '+password)

        now_user = authenticate(username=username, password=password)
        if now_user is not None:
            if now_user.is_active:
                login(request, now_user)
                print('пользователь успешно залогинелся')
                return redirect('index')

    return render(request, 'mainapp/login.html', {'form': form})


После ввода логина и пароля на странице входа идет перенаправление на главную страницу (при попытке ввойти Django admin – джанго просит ввести логин и пароль от админа – так я понимаю, что текущий пользователь теперь не суперюзер).
Теперь для ограничения пользователя добавил декоратор перед функцией представления:
…
from django.contrib.auth.decorators import login_required
…

@login_required
def edit_question(request, element, element_id):

В этой функции совершается изменения модели на изменение которой у пользователя нет прав. Что я делаю не так?
  • Вопрос задан
  • 2028 просмотров
Пригласить эксперта
Ответы на вопрос 1
@glader
Вам надо при изменении модели явно проверять https://docs.djangoproject.com/en/2.1/ref/contrib/...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы