У меня есть пользовательская модель пользователя с полем, определяющим уровень пользователя. Я хотел бы использовать это поле для ограничения определенных представлений / конечных точек API и других функций.
То есть для представлений на основе классов или маршрутов URL, как я могу использовать это свойство, т. Е. Если пользователь вошел в систему и is_end_user, то не разрешает доступ к CBV 1 и аналогичным логам c?
Роли здесь, то есть администратор, не совпадают с ролями суперпользователя, поэтому ни одна из них не имеет доступа к административному бэкэнду Django, но я хочу сделать отдельные "административные" представления / панели для разных групп пользователей - также API должен быть доступен только пользователям с id_end_user == True.
Я использую Django 2.2 и Python 3.5
Определение модели:
class AppUser(AbstractBaseUser, PermissionsMixin):
[...]
USER_TYPE_CHOICES = (
(1, 'appuser'),
(2, 'moderator'),
(3, 'intern'),
(4, 'admin'),
)
[...]
def _get_user_type(self):
return self.user_type
@property
def is_end_user(self):
if (self._get_user_type() is 1):
return True
else:
return False
[...]