forked from wrenn/wrenn
Email signup now creates inactive users who must activate via a 30-minute email token before signing in. Team creation is deferred to first login after activation, while OAuth users continue to get teams immediately. - Replace boolean is_active with status column (inactive/active/disabled/deleted) - Add POST /v1/auth/activate endpoint with Redis-backed token consumption - Signup returns message instead of JWT, sends activation email - Login differentiates error messages by user status - Add confirm password field to signup form - Add /activate frontend page that auto-logs in on success - Handle inactive user cleanup on re-signup (30-min cooldown) and OAuth collision
16 lines
525 B
SQL
16 lines
525 B
SQL
-- +goose Up
|
|
ALTER TABLE users ADD COLUMN status TEXT NOT NULL DEFAULT 'active';
|
|
|
|
-- Backfill from existing columns.
|
|
UPDATE users SET status = 'deleted' WHERE deleted_at IS NOT NULL;
|
|
UPDATE users SET status = 'disabled' WHERE is_active = false AND deleted_at IS NULL;
|
|
|
|
ALTER TABLE users DROP COLUMN is_active;
|
|
|
|
-- +goose Down
|
|
ALTER TABLE users ADD COLUMN is_active BOOLEAN NOT NULL DEFAULT TRUE;
|
|
|
|
UPDATE users SET is_active = false WHERE status IN ('inactive', 'disabled', 'deleted');
|
|
|
|
ALTER TABLE users DROP COLUMN status;
|