Сразу прошу не ругаться и
не кидать ссылки на https://docs.djangoproject.com/en/2.1/ref/contrib/auth/, ибо там не даются примеры простых действий, которые мне нужны и я не могу понять, что сделать чтобы получить результат.
Итак у меня есть пользователи:
- admin - он же суперпользователь
- personal - просто зарегистрированный пользователь с поставленной галочкой в админке напротив персонала.
- manager - поставлена галочка персонала и добавлена роль manage (в которой разрешения на проверку заказов)
- first, second, test, test2 ... - толпа пользователей, которым никакие права и роли не назначены (ибо я не знаю как это делать), но которые зарегистрированы не в админке, а в интернет-магазине при оформлении заказов и каждый из них может логиниться и каждый может заходить в свой ЛК
Да и вообще все перечисленные выше пользователи могут логиниться, оформлять заказы и заходить в свой ЛК.
Изначально планировалось создать серию админок-кабинетов под каждую роль. Но я с этим не могу разобраться уже неделю. Казалось бы простая вещь, но нигде в документации Django и в примерах на ютубе, даже англоязычном, я не могу найти простую вещь. (да, английский я не знаю и пользуюсь лишь гугл-переводчиком).
Что собственно мне нужно? А нужно в фале views.py простую вещь:
# если авторизован, то
if request.user.is_authenticated:
if это_суперпользователь:
# загружаем админку-кабинет суперпользователя (тот который я сам сделал)
# ...
elif это_персонал без ролей:
# загружаем админку-кабинет персонала (другой, но тот который я сам сделал) без каких-либо спец.разрешений
# ...
elif это_персонал с ролью manage:
# загружаем админку-кабинет менеджера (другой, но тот который я сам сделал)
# ...
else:
# загружаем админку-кабинет простых пользователей (другой, но тот который я сам сделал)
# ... кстати это (надеюсь просто через подготовку данных и
# return HttpResponseRedirect(reverse('account'))
# и объяснять мне не надо. Мне нужны именно что писать в If-ах?
Ну почему вот в такой простой доступной и понятной форме нельзя это написать в документации? Ребята ну помогите пожалуйста. Устал уже читать и смотреть кучу несвязанных отрывков.
И если не сложно, скажите что добавить в registration_view, чтобы назначить свежерегистрирующемуся определённую роль. Сейчас там так:
def registration_view(request):
form = RegistrationForm(request.POST or None)
if form.is_valid():
new_user = form.save(commit=False)
new_user.username = form.cleaned_data['username']
new_user.set_password(form.cleaned_data['password'])
new_user.email = form.cleaned_data['email']
new_user.first_name = form.cleaned_data['first_name']
new_user.last_name = form.cleaned_data['last_name']
new_user.save()
login_user = authenticate(request, username=form.cleaned_data['username'], password=form.cleaned_data['password'])
if login_user:
login(request, login_user)
return HttpResponseRedirect(reverse('account'))
context = {
'form': form,
}
return render(request, 'registration.html', context)