Каковы различия между пользовательскими типами пользователей в Django? - PullRequest
1 голос
/ 20 сентября 2019

Я планирую проект 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 былпредназначен для использования.

Позволяет ли тип логического пользователя вносить изменения в административной панели?

  • Типы логического пользователя позволяют легко реализовать авторизацию в шаблонах, когда пользователи добавляются вГруппам, как правило, проще добавлять в представления декораторы авторизации.

Есть ли такой, который сможет выполнить обе эти задачи?Если оба - что является более безопасным?Что проще?

Каковы другие компромиссы между одним и другим?

Пример сценария:

Несколько предприятий, которые регистрируются на этом сайте, имеют несколько типов супервизоров для нескольких типов сотрудников.Очевидно, что чем выше ранг, тем больше у них будет доступа к изменению данных.

Есть ли одна реализация, от которой мне следует отказаться из-за безопасности / масштабируемости или любых других проблем?

Заранее спасибо!

Редактировать: я вижу, что разрешения можно проверять в шаблонах, поэтому есть ли причина использовать / не использовать логические флаги?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...