Switch user status to enum
Some checks failed
CI / scan_ruby (push) Has been cancelled
CI / scan_js (push) Has been cancelled
CI / lint (push) Has been cancelled
CI / test (push) Has been cancelled
CI / system-test (push) Has been cancelled

This commit is contained in:
Dan Milne
2025-10-23 20:24:19 +11:00
parent 91573ee2b9
commit 7f075391c1
6 changed files with 146 additions and 6 deletions

View File

@@ -14,11 +14,11 @@ class User < ApplicationRecord
validates :email_address, presence: true, uniqueness: { case_sensitive: false },
format: { with: URI::MailTo::EMAIL_REGEXP }
validates :password, length: { minimum: 8 }, allow_nil: true
validates :status, presence: true,
inclusion: { in: %w[active disabled pending_invitation] }
# Enum - automatically creates scopes (User.active, User.disabled, etc.)
enum :status, { active: 0, disabled: 1, pending_invitation: 2 }
# Scopes
scope :active, -> { where(status: "active") }
scope :admins, -> { where(admin: true) }
# TOTP methods