32 lines
1.3 KiB
Python
32 lines
1.3 KiB
Python
from dataclasses import dataclass
|
|
from typing import Literal
|
|
|
|
SyncMode = Literal["ldap", "django", "auto"]
|
|
SyncScope = Literal["all", "users", "departments", "groups"]
|
|
|
|
DISABLED_FLAG = 0x0002
|
|
|
|
|
|
@dataclass(frozen=True)
|
|
class SyncConfig:
|
|
"""Конфигурация синхронизации каталога.
|
|
|
|
Attributes:
|
|
mode (SyncMode): Направление ('ldap'|'django'|'auto').
|
|
scope (SyncScope): Область ('all'|'users'|'departments'|'groups').
|
|
dry_run (bool): Сухой прогон — изменения считаются/валидируются, но не применяются.
|
|
max_changes (int): Лимит изменений за прогон (зарезервировано).
|
|
users_base_dn (str): DN контейнера пользователей (OU=Users,...).
|
|
departments_base_dn (str): DN контейнера отделов (OU=Departments,...).
|
|
groups_base_dn (str): DN контейнера глобальных групп (OU=Groups,...).
|
|
"""
|
|
|
|
mode: SyncMode = "ldap"
|
|
scope: SyncScope = "all"
|
|
dry_run: bool = True
|
|
max_changes: int = 1000
|
|
users_base_dn: str = ""
|
|
departments_base_dn: str = ""
|
|
groups_base_dn: str = ""
|
|
show_changes: bool = False
|