mirror of
https://github.com/aljazceru/enclava.git
synced 2025-12-17 23:44:24 +01:00
72 lines
1.9 KiB
Python
72 lines
1.9 KiB
Python
"""fix missing user columns
|
|
|
|
Revision ID: fd999a559a35
|
|
Revises: 003_add_notifications_tables
|
|
Create Date: 2025-10-30 11:33:42.236622
|
|
|
|
"""
|
|
from alembic import op
|
|
import sqlalchemy as sa
|
|
|
|
|
|
# revision identifiers, used by Alembic.
|
|
revision = "fd999a559a35"
|
|
down_revision = "003_add_notifications_tables"
|
|
branch_labels = None
|
|
depends_on = None
|
|
|
|
|
|
def upgrade() -> None:
|
|
# Add missing columns to users table
|
|
# These columns should have been added in 001_add_roles_table.py but were not
|
|
|
|
# Use try/except to handle cases where columns might already exist
|
|
try:
|
|
op.add_column("users", sa.Column("custom_permissions", sa.JSON(), nullable=True, default=dict))
|
|
except Exception:
|
|
pass # Column might already exist
|
|
|
|
try:
|
|
op.add_column("users", sa.Column("account_locked", sa.Boolean(), nullable=True, default=False))
|
|
except Exception:
|
|
pass
|
|
|
|
try:
|
|
op.add_column("users", sa.Column("account_locked_until", sa.DateTime(), nullable=True))
|
|
except Exception:
|
|
pass
|
|
|
|
try:
|
|
op.add_column("users", sa.Column("failed_login_attempts", sa.Integer(), nullable=True, default=0))
|
|
except Exception:
|
|
pass
|
|
|
|
try:
|
|
op.add_column("users", sa.Column("last_failed_login", sa.DateTime(), nullable=True))
|
|
except Exception:
|
|
pass
|
|
|
|
|
|
def downgrade() -> None:
|
|
# Remove the columns
|
|
try:
|
|
op.drop_column("users", "last_failed_login")
|
|
except Exception:
|
|
pass
|
|
try:
|
|
op.drop_column("users", "failed_login_attempts")
|
|
except Exception:
|
|
pass
|
|
try:
|
|
op.drop_column("users", "account_locked_until")
|
|
except Exception:
|
|
pass
|
|
try:
|
|
op.drop_column("users", "account_locked")
|
|
except Exception:
|
|
pass
|
|
try:
|
|
op.drop_column("users", "custom_permissions")
|
|
except Exception:
|
|
pass
|