Files
ACORE/apps/ad_connector/models.py
T
lokses 81dee5cba2 Интеграции AD/Mattermost: OU-управление, импорт, шифрование токенов
- ad_connector: страницы управления OU и импорта из AD, поле ad_ou_dn
  в Directory, ADSyncLog; расширение sync-сервиса и клиента
- mattermost_connector: personal access token шифруется (Fernet,
  token_service), бот-сервис, команды создания бота и синхронизации;
  публикация постов в каналы. Тесты (19)
- core: ConnectorConfig, Directory (ad_ou_dn), обновления админки

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-22 17:32:26 +03:00

34 lines
1.2 KiB
Python

from django.db import models
from django.utils.translation import gettext_lazy as _
from core.models import BaseModel
class ADSyncLog(BaseModel):
employee = models.ForeignKey(
'employees.Employee', on_delete=models.CASCADE,
related_name='ad_sync_logs', verbose_name=_('Сотрудник'),
)
action = models.CharField(
_('Действие'), max_length=20,
choices=[
('create', _('Создание')),
('update', _('Обновление')),
('activate', _('Включение')),
('deactivate', _('Отключение')),
],
)
status = models.CharField(
_('Статус'), max_length=10,
choices=[('success', _('Успех')), ('error', _('Ошибка'))],
)
message = models.TextField(_('Сообщение'), blank=True)
class Meta:
verbose_name = _('Запись синхронизации AD')
verbose_name_plural = _('Журнал синхронизации AD')
ordering = ['-created_at']
def __str__(self):
return f'{self.employee} — {self.get_action_display()} — {self.get_status_display()}'