Недавно я пытался создать проект, в котором участвуют несколько уровней пользователей.
(Просто пример сокращенной и грубой схемы)
- ME (Super User)
- Client(s)
- Customer(s)
- Survey Collections
- SurveyUser(s)
- Invitee(s)
- Surveys
- Invitee(s) (invitee is a child of both survey and user)
- Вопросы
- И т.д
- SurveyUser(s)
- Client(s)
Я бы в идеале:
- www.example.com/client/ перейдите к интерфейсу клиента, для доступа к которому вы должны были быть клиентом
- www.example.com/customer/ перейдите в клиентский интерфейс, для доступа к которому вы должны были быть клиентом
Я уже установил, что использование индивидуального административного интерфейса Django для всех из них, вероятно, невозможно (или возможно?). Поэтому я склоняюсь к ручному созданию интерфейсов администратора для каждого уровня пользователя, позволяя им управлять своими ролями. Каков наилучший способ иметь разные типы пользователей и отдельные интерфейсы для каждого из них?
Мне нравится способ наследования пользователей, описанный здесь: http://scottbarnham.com/blog/2008/08/21/extending-the-django-user-model-with-inheritance/
Но я не уверен, как настроить разные области «администрирования» для разных пользователей.
В качестве связанной с этим побочной проблемы я также не уверен, как получить доступ к пользовательским свойствам наряду со стандартными свойствами пользователя и как редактировать/сохранять их в АКТУАЛЬНОМ интерфейсе администратора, который я буду использовать.
Мне нужно будет аутентифицировать пользователей «Клиент» в клиентской базе данных, чтобы проверить, являются ли они клиентами, но каким-то образом также аутентифицировать в пользовательской базе данных, которая управляет аутентификацией, именем пользователя, паролем и т. д.
Я перехожу с PHP на Python/Django, поэтому любой совет очень ценен, чтобы помочь мне в этом.
Спасибо!