listUsers() now LEFT JOINs local_credentials and returns has_local_credentials.
The auth source cell renders both the primary auth_source badge and a secondary
Local badge when an OIDC user also has local credentials set.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The Credentials provider in Auth.js processes credentials at the
/callback/:provider endpoint, not /signin/:provider. Posting to
/signin/local hits a code path that just redirects back to the Auth.js
built-in sign-in page. Changing to /callback/local routes the form
submission to the correct handler.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
After a successful Credentials sign-in, Auth.js was redirecting to its
own built-in /auth/signin page because no callbackUrl was provided.
Add a callbackUrl hidden field (pointing to the app root) so Auth.js
redirects back to the application after local login completes.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Replace `on:keydown` with `onkeydown` and `onsubmit|preventDefault`
with inline handlers calling `e.preventDefault()` to fix compilation
errors caused by mixing old and new Svelte event syntax.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Summary:\n- replace scaffold README with project-specific setup, testing, Docker, and CI docs\n- add PR workflow to run lint, unit tests, app build, and Docker build\n- add main-branch workflow to build and push Docker images to Gitea registry\n\nNotes:\n- publish workflow expects REGISTRY_USERNAME and REGISTRY_PASSWORD repository secrets\n- image tags pushed: latest and short commit SHA\n\nTesting:\n- not run locally (workflows execute in Gitea Actions)
Reviewed-on: CampbellWireless/trips#1
Co-authored-by: Shaun Campbell <shaun@campbellwireless.net>
Co-committed-by: Shaun Campbell <shaun@campbellwireless.net>