fix: fall back to cell effective domain when email service domain not configured
Unit Tests / test (push) Successful in 11m10s
Unit Tests / test (push) Successful in 11m10s
When the email store service is installed but no explicit domain has been set in its config, _provision_email now falls back to config_manager.get_effective_domain() so peer account creation works immediately without requiring a separate config step. Also threads config_manager into AccountManager.__init__ (optional kwarg, no existing callers break) so the fallback is available without a global import. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -52,15 +52,17 @@ _HTTP_TIMEOUT = 10
|
||||
|
||||
class AccountManager:
|
||||
|
||||
def __init__(self, service_registry, data_dir: str, **managers):
|
||||
def __init__(self, service_registry, data_dir: str, config_manager=None, **managers):
|
||||
"""
|
||||
service_registry — ServiceRegistry instance
|
||||
data_dir — host data directory (data/peer_service_credentials.json lives here)
|
||||
config_manager — ConfigManager instance (used to resolve fallback email domain)
|
||||
**managers — named manager instances: email_manager=..., calendar_manager=...,
|
||||
file_manager=...
|
||||
"""
|
||||
self._registry = service_registry
|
||||
self._creds_path = Path(data_dir) / 'peer_service_credentials.json'
|
||||
self._config_manager = config_manager
|
||||
self._managers = managers
|
||||
self._lock = threading.Lock()
|
||||
|
||||
@@ -88,6 +90,8 @@ class AccountManager:
|
||||
|
||||
def _provision_email(self, manager, svc: Dict, peer_username: str, password: str) -> bool:
|
||||
domain = (svc.get('config') or {}).get('domain', '')
|
||||
if not domain and self._config_manager is not None:
|
||||
domain = self._config_manager.get_effective_domain() or ''
|
||||
if not domain:
|
||||
raise ValueError("Email service has no 'domain' configured")
|
||||
return manager.create_email_user(peer_username, domain, password)
|
||||
|
||||
@@ -80,6 +80,7 @@ service_composer = ServiceComposer(config_manager=config_manager, data_dir=DATA_
|
||||
account_manager = AccountManager(
|
||||
service_registry=service_registry,
|
||||
data_dir=DATA_DIR,
|
||||
config_manager=config_manager,
|
||||
email_manager=email_manager,
|
||||
calendar_manager=calendar_manager,
|
||||
file_manager=file_manager,
|
||||
|
||||
Reference in New Issue
Block a user