- User model with email/hashed_password/is_admin/notification_prefs - JWT auth: POST /api/auth/register, /login, /me - First registered user auto-promoted to admin - Migration 0005: users table + user_id FK on follows (clears global follows) - Follows, dashboard, settings, admin endpoints all require authentication - Admin endpoints (settings writes, celery triggers) require is_admin - Frontend: login/register pages, Zustand auth store (localStorage persist) - AuthGuard component gates all app routes, shows app shell only when authed - Sidebar shows user email + logout; Admin nav link visible to admins only - Admin panel (/settings): user list with delete + promote/demote, LLM config, data source settings, and manual celery controls Authored-By: Jack Levy
12 lines
241 B
Plaintext
12 lines
241 B
Plaintext
# Normalize text files to LF in the repo
|
|
* text=auto eol=lf
|
|
|
|
# (Optional) Explicit common types
|
|
*.ts text eol=lf
|
|
*.tsx text eol=lf
|
|
*.js text eol=lf
|
|
*.jsx text eol=lf
|
|
*.json text eol=lf
|
|
*.md text eol=lf
|
|
*.yml text eol=lf
|
|
*.yaml text eol=lf |