idegree
@idegree
Senior Workaround Developer

Доступ к различным частям сайта пользователям из разных групп?

Хочу дать пользователям из разных групп доступ только в их часть сайта. Авторизацию делаю таким образом:

def signin(request):
    if request.method == 'GET':
        return render(request, 'site/login.html')
    elif request.method == 'POST':
        username = request.POST['username']
        password = request.POST['password']
        user = authenticate(username=username, password=password)
        if user is not None:
            if user.is_active:
                login(request, user)
                if user.groups.filter(name__in=['Admins']) or user.is_superuser:
                    return HttpResponseRedirect('/cp/')
                elif user.groups.filter(name__in=['Counteragents']):
                    return HttpResponseRedirect('/counteragent/')
                elif user.groups.filter(name__in=['Clients']):
                    return HttpResponseRedirect('/client/')
            else:
                pass
        else:
            pass


Затем на вьюшках проверяю пренадлежность пользователя к нужной группе:

def admin_check(user):
    if user.groups.filter(name__in=['Admins']) or user.is_superuser:
        return True
    else:
        return False

@user_passes_test(admin_check)
def admin_home(request):
    return render(request, 'admin/home.html')


Есть ли лучшее решение данного вопроса? Может такой подход вообще никуда не годится?
  • Вопрос задан
  • 134 просмотра
Решения вопроса 1
Пригласить эксперта
Ваш ответ на вопрос

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

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