Pass emailLoginNotificationEnabled to CreateNewSignInWithEmail instead of
the whole AppConfigModel, so the sign-in audit business logic no longer
takes the config struct just to read one flag. The caller evaluates the
flag from the config it already loaded.
The background notification email, which is sent in a detached goroutine
after the request completes, now resolves the current config from the app
config service rather than threading the request's snapshot into the
goroutine.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YZ6SoJpmnLggZqactXxrak
Remove the AppConfigMiddleware that stored an app-config resolver in the
request context and the FromCtx helper that read it back downstream.
Handlers now load the app config from AppConfigService and pass it as an
explicit argument to the service methods that need it, which then forward
it further down the call chain.
The webauthn and usersignup modules gain an AppConfigResolver dependency so
their handlers can load the config the same way. The email SendEmail and
LDAP SyncAll helpers drop their context-based variants in favor of the
explicit-config versions.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YZ6SoJpmnLggZqactXxrak