feat(auth): несколько эталонных mail-доменов для верификации регистрации
Настройка «Эталон mail-домена» теперь хранит список доменов вместо
одного — email при регистрации принимается, если совпадает с любым из
них. Старое значение в БД ({"domain": str|None}) читается прозрачно
(обратная совместимость без Alembic-миграции) и переписывается в новую
форму ({"domains": [...]}) при первом же сохранении настроек. В админке
добавление/удаление доменов — списком чипов; на экране регистрации
подсказка о несовпадении домена перечисляет все эталонные варианты.
This commit is contained in:
@@ -155,7 +155,7 @@ class SettingsOut(BaseModel):
|
||||
display_timezone: str
|
||||
registration_team_choice: bool
|
||||
registration_email_domain_enabled: bool
|
||||
registration_email_domain: str | None = None
|
||||
registration_email_domains: list[str] = Field(default_factory=list)
|
||||
contact_email_enabled: bool
|
||||
contact_email: str | None = None
|
||||
|
||||
|
||||
@@ -103,11 +103,11 @@ class RegistrationOptionsOut(BaseModel):
|
||||
|
||||
`teams` отдаётся только при `team_choice_enabled=True` — иначе пустой
|
||||
список (справочник команд не раскрывается, пока выбор выключен).
|
||||
`email_domain` — эталонный домен при включённой верификации регистрации
|
||||
`email_domains` — эталонные домены при включённой верификации регистрации
|
||||
по домену email (настройка инстанса `registration_email_domain`), иначе
|
||||
`None`.
|
||||
пустой список.
|
||||
"""
|
||||
|
||||
team_choice_enabled: bool
|
||||
teams: list[RegistrationTeamOptionOut]
|
||||
email_domain: str | None = None
|
||||
email_domains: list[str] = Field(default_factory=list)
|
||||
|
||||
Reference in New Issue
Block a user