Add password change, rename Viewer→Commissioner, fix login logo

- Rename VIEWER role to COMMISSIONER throughout (schema, middleware,
  admin layout, users page); add psql pre-migration step in entrypoint
  to rename the PostgreSQL enum value without data loss
- Install postgresql-client in Docker runner stage for psql access
- Login page: fetch sbLogo from settings API instead of hardcoded path
- Password change for all authenticated users:
  - New PATCH /api/users/me endpoint (verifies current password, hashes new)
  - Change Password button/modal on /my-squares page
  - Change Password link in admin sidebar (links to /my-squares)
  - New password_change email template (seeded, editable in admin)
  - sendPasswordChangedEmail auto-email triggered on change

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Philip
2026-03-12 10:36:16 -07:00
parent 200eda839c
commit e7b7536e70
14 changed files with 222 additions and 25 deletions
+2 -1
View File
@@ -24,7 +24,8 @@ ENV NODE_ENV=production
RUN addgroup --system --gid 1001 nodejs
RUN adduser --system --uid 1001 nextjs
# Install prisma CLI for db push at runtime
# Install prisma CLI and psql client for runtime migrations
RUN apk add --no-cache postgresql-client
RUN npm install -g prisma@6
COPY --from=builder /app/public ./public