feat(auth): несколько эталонных mail-доменов для верификации регистрации
Настройка «Эталон mail-домена» теперь хранит список доменов вместо
одного — email при регистрации принимается, если совпадает с любым из
них. Старое значение в БД ({"domain": str|None}) читается прозрачно
(обратная совместимость без Alembic-миграции) и переписывается в новую
форму ({"domains": [...]}) при первом же сохранении настроек. В админке
добавление/удаление доменов — списком чипов; на экране регистрации
подсказка о несовпадении домена перечисляет все эталонные варианты.
This commit is contained in:
@@ -460,7 +460,7 @@ def _to_settings_out(cfg: InstanceConfig, *, transcription_queue_served: bool) -
|
||||
display_timezone=cfg.display_timezone,
|
||||
registration_team_choice=cfg.registration_team_choice,
|
||||
registration_email_domain_enabled=cfg.registration_email_domain_enabled,
|
||||
registration_email_domain=cfg.registration_email_domain,
|
||||
registration_email_domains=cfg.registration_email_domains,
|
||||
contact_email_enabled=cfg.contact_email_enabled,
|
||||
contact_email=cfg.contact_email,
|
||||
)
|
||||
|
||||
@@ -53,17 +53,17 @@ async def registration_options(
|
||||
|
||||
Список команд отдаётся только при включённой настройке инстанса
|
||||
`registration_team_choice` — иначе пустой массив (справочник команд не
|
||||
раскрывается, пока выбор выключен). `email_domain` — эталонный домен при
|
||||
включённой настройке `registration_email_domain`, иначе `None`.
|
||||
раскрывается, пока выбор выключен). `email_domains` — эталонные домены при
|
||||
включённой настройке `registration_email_domain`, иначе пустой список.
|
||||
"""
|
||||
cfg = await InstanceSettingsService(session).get()
|
||||
teams: list[RegistrationTeamOptionOut] = []
|
||||
if cfg.registration_team_choice:
|
||||
items, _ = await TeamRepository(session).list_all()
|
||||
teams = [RegistrationTeamOptionOut(id=team.id, name=team.name) for team in items]
|
||||
email_domain = cfg.registration_email_domain if cfg.registration_email_domain_enabled else None
|
||||
email_domains = cfg.registration_email_domains if cfg.registration_email_domain_enabled else []
|
||||
return RegistrationOptionsOut(
|
||||
team_choice_enabled=cfg.registration_team_choice, teams=teams, email_domain=email_domain
|
||||
team_choice_enabled=cfg.registration_team_choice, teams=teams, email_domains=email_domains
|
||||
)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user