Модуль users
Путь: app/users/
Django app: app.users
AUTH_USER_MODEL: users.user
Назначение
Модуль управляет учётными записями пользователей, аутентификацией и паспортными данными сотрудников.
Модели
User
Кастомная модель пользователя, наследует AbstractBaseUser и PermissionsMixin.
python
class User(AbstractBaseUser, PermissionsMixin):
email = EmailField(unique=True)
first_name = CharField()
last_name = CharField()
middle_name = CharField() # отчество
phone = CharField()
is_active = BooleanField()
is_staff = BooleanField()
date_joined = DateTimeField()
# Связи:
company_structure = FK(Department) # отдел
position = FK(Position) # должность
avatar = ImageField()USERNAME_FIELD: email
Аутентификация выполняется по email (не по username).
Passport
Паспортные данные сотрудника (хранятся отдельно для безопасности):
python
class Passport(Model):
user = OneToOneField(User)
series = CharField()
number = CharField()
issued_by = TextField()
issue_date = DateField()
registration_address = TextField()API
Аутентификация
| Endpoint | Метод | Описание |
|---|---|---|
/api/v2/api-token-auth/ | POST | Получить токен по email + password |
/api/v2/current-user/ | GET | Данные текущего пользователя |
Пример получения токена
bash
curl -X POST /api/v2/api-token-auth/ \
-d '{"username": "user@example.com", "password": "secret"}'
# Response: {"token": "abc123..."}Использование токена
http
Authorization: Token abc123...Права доступа
- Глобальная политика:
IsAuthenticated(все endpoints требуют авторизации) - Права на модели: Django
Permission+ кастомныйPermissionService - Frontend проверка: директива
HasPermissionDirective
Конфигурация
python
# settings.py
AUTH_USER_MODEL = 'users.user'
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': [
'rest_framework.authentication.TokenAuthentication',
],
'DEFAULT_PERMISSION_CLASSES': [
'rest_framework.permissions.IsAuthenticated',
],
}Связи с другими модулями
app.company_structure— Department, Positionsystem.auditlog— история действий пользователяapp.tasks— задачи, назначенные пользователюapp.manufacture— смены сотрудника