gmao/migrations/versions/a2b6c7d8e9f0_normalize_user_roles.py
root d3ddfdb974
Some checks are pending
CI - Tests et Syntax / lint-and-test (push) Waiting to run
Centralise les rôles et les permissions
2026-08-14 18:53:03 +00:00

38 lines
1.4 KiB
Python

"""Normalise les rôles utilisateurs.
Revision ID: a2b6c7d8e9f0
Revises: f1a5b6c7d8e9
Create Date: 2026-08-14
"""
from alembic import op
import sqlalchemy as sa
revision = "a2b6c7d8e9f0"
down_revision = "f1a5b6c7d8e9"
branch_labels = None
depends_on = None
def upgrade():
op.alter_column(
"users", "role", existing_type=sa.String(length=20),
type_=sa.String(length=32), nullable=False, server_default="demandeur",
)
op.execute("UPDATE users SET role = 'admin' WHERE role = 'super_admin'")
op.execute("UPDATE users SET role = 'responsable_gmao' WHERE role IN ('chef', 'responsable')")
op.execute("UPDATE users SET role = 'technicien' WHERE role IN ('tech', 'technician')")
op.execute("UPDATE users SET role = 'demandeur' WHERE role IN ('user', 'requester') OR role IS NULL OR role = ''")
op.execute("UPDATE users SET role = 'lecture' WHERE role = 'viewer'")
def downgrade():
op.execute("UPDATE users SET role = 'chef' WHERE role = 'responsable_gmao'")
op.execute("UPDATE users SET role = 'tech' WHERE role IN ('technicien', 'assistant_prevention')")
op.execute("UPDATE users SET role = 'user' WHERE role = 'demandeur'")
op.execute("UPDATE users SET role = 'viewer' WHERE role = 'lecture'")
op.alter_column(
"users", "role", existing_type=sa.String(length=32),
type_=sa.String(length=20), nullable=True, server_default="user",
)