Я планирую проект Django и мне интересно, каковы различия между использованием пользовательских типов пользователей с логическими флагами и пользовательских пользователей с установленными разрешениями и добавленными в группы в Django?У них проблемы безопасности с логическими типами пользователей?
Пример того, что я подразумеваю под логическим типом пользователя:
class User(AbstractUser):
is_student = models.BooleanField('student status', default=False)
is_teacher = models.BooleanField('teacher status', default=False)
По сравнению с пользовательским пользователем, который добавляется в группу:
class User(AbstractUser):
class Meta:
permissions = (("is_student", "student status")
("is_teacher", "teacher status"))
Несколько вещей, которые я вижу в оригинале:
- Последние могут быть добавлены в пользовательские группы в панели администратора, так что, похоже, именно так Django былпредназначен для использования.
Позволяет ли тип логического пользователя вносить изменения в административной панели?
- Типы логического пользователя позволяют легко реализовать авторизацию в шаблонах, когда пользователи добавляются вГруппам, как правило, проще добавлять в представления декораторы авторизации.
Есть ли такой, который сможет выполнить обе эти задачи?Если оба - что является более безопасным?Что проще?
Каковы другие компромиссы между одним и другим?
Пример сценария:
Несколько предприятий, которые регистрируются на этом сайте, имеют несколько типов супервизоров для нескольких типов сотрудников.Очевидно, что чем выше ранг, тем больше у них будет доступа к изменению данных.
Есть ли одна реализация, от которой мне следует отказаться из-за безопасности / масштабируемости или любых других проблем?
Заранее спасибо!
Редактировать: я вижу, что разрешения можно проверять в шаблонах, поэтому есть ли причина использовать / не использовать логические флаги?