copilot-swe-agent[bot]
cdd1524def
fix(i18n): restore social providers block in login.html, fix escaped quotes
...
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-12 11:39:13 +00:00
copilot-swe-agent[bot]
64577f2d92
i18n: translate 6 HTML Jinja2 templates with _() calls
...
Replace all hardcoded English visible text with {{ _("key") }} calls in:
- queue_dashboard.html: headings, stat cards, table headers, empty states
- api_tokens.html: form labels, table headers, status badges, aria-labels
- similarity_dashboard.html: headings, stat labels, controls, empty states
- backup.html: buttons, config labels, table, retention section, confirm dialog
- shared_links.html: form labels/options, table headers, status badges
- duplicates.html: tabs, role tags, near-dup form, explanation bullets
Follows i18n rules: placeholder/aria-label/title attrs translated,
JS strings in <script> left as-is, Alpine.js bindings use Jinja2
server-side evaluation pattern for dynamic translated strings.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-03-11 12:22:46 +00:00
copilot-swe-agent[bot]
d36ba88de7
feat(auth): password reset, forgot username, and admin user management for local accounts
...
- Add /forgot-password and /forgot-username page routes and templates
- Update login page label to "Username or Email" (both already accepted by backend)
- Add "Forgot password?" and "Forgot username?" links to login page
- Add POST /api/auth/forgot-username endpoint + send_forgot_username_email() utility
- Add admin endpoints: PATCH /local/{id}, POST /local/{id}/send-password-reset, POST /local/{id}/set-password
- Update admin_users.html with Edit, Password, and Reset action buttons + modals
- Add 23 tests; fix code review issues (import style, display_name clearing behaviour)
- Update docs/API.md and docs/UserGuide.md
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-08 10:06:08 +00:00
copilot-swe-agent[bot]
44ea43f9cf
chore: update plan to include forgot-username and login label clarification
...
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-08 09:44:59 +00:00
copilot-swe-agent[bot]
52e3852129
feat(auth): add local user signup, email verification, and Stripe billing
...
- Add LocalUser model with bcrypt password hashing, email verification
tokens, and password reset tokens
- Add ALLOW_LOCAL_SIGNUP config flag (requires SMTP to be configured)
- Add Stripe billing config fields (STRIPE_SECRET_KEY, etc.)
- Add stripe_customer_id to UserProfile and stripe_price_id_monthly/
stripe_price_id_yearly to SubscriptionPlan
- Create migration 018_add_local_users_and_billing
- Add app/utils/local_auth.py: hash_password, verify_password,
generate_token, is_token_expired, send_verification_email,
send_password_reset_email, build_session_user
- Add app/api/local_auth.py: signup, email verification, password reset
endpoints plus signup/verify-email-sent/reset-password page routes
- Add app/api/billing.py: Stripe Checkout, Customer Portal, and webhook
endpoints; syncs subscription tier from webhook events
- Update auth() to check LocalUser table before admin credentials fallback
- Update login() to pass allow_signup context variable to template
- Add signup.html, verify_email_sent.html, password_reset_form.html,
billing_success.html templates (Alpine.js, Tailwind, WCAG 2.1 AA)
- Update login.html to show 'Create account' link when signup enabled
- Update pricing.html CTA buttons to use Stripe Checkout for paid tiers
- Add docs/BillingSetup.md with setup guide, webhook config, compliance
- Add tests/test_local_auth.py (42 tests) and tests/test_billing.py
(31 tests); all 106 tests in the modified test suite pass
- Add stripe>=7.0.0,<15.0.0 to requirements.txt
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-03-07 13:15:15 +00:00
copilot-swe-agent[bot]
bf6bbe3512
feat(ui): fix accessibility in upload, search, files, and login templates
...
- upload.html: Add role/tabindex/aria-label to drop zone, aria-live to status messages, aria-label to file inputs
- search.html: Add role="search", sr-only label, aria-live for results, input type="search"
- files.html: Add table aria-label, scope="col" to headers, aria-sort on sortable columns, aria-labels to action buttons, dialog roles to modals, aria-live to status areas, pagination nav with aria-labels
- login.html: Wrap form in main landmark, aria-hidden on decorative icons
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-02-28 15:59:12 +00:00
copilot-swe-agent[bot]
c54cbcbdd6
feat(auth): implement CSRF token protection for state-changing operations
...
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-02-22 16:27:37 +00:00
copilot-swe-agent[bot]
b03ebab747
chore: apply ruff formatting and fix whitespace issues
...
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-02-13 09:12:11 +00:00
Christian Krakau-Louis
d79652b494
feat: Add authentication configuration and validation
...
- Introduced new authentication settings in config.py including `auth_enabled`, `admin_username`, `admin_password`, and `session_secret`.
- Added validation for `session_secret` to ensure it meets security requirements when authentication is enabled.
- Updated main.py to conditionally mount static files and log warnings if the directory is not found.
- Removed unused email template files and added new authentication and notification setup documentation.
- Implemented authentication configuration validation in validators.py and updated settings display.
- Enhanced the user interface with a new login template and SVG assets for branding.
- Added comprehensive guides for setting up authentication and notifications in the documentation.
2025-04-11 03:44:08 +02:00