24 lines
1 KiB
Python
24 lines
1 KiB
Python
|
|
"""Ajouter les actions granulaires au catalogue RBAC.
|
||
|
|
Revision ID: 9c17d8e9f0a1
|
||
|
|
Revises: 9b06c7d8e9f0
|
||
|
|
"""
|
||
|
|
from alembic import op
|
||
|
|
import sqlalchemy as sa
|
||
|
|
from app_new.core.authorization import GRANULAR_PERMISSION_CODES
|
||
|
|
revision = "9c17d8e9f0a1"
|
||
|
|
down_revision = "9b06c7d8e9f0"
|
||
|
|
branch_labels = None
|
||
|
|
depends_on = None
|
||
|
|
def upgrade():
|
||
|
|
bind = op.get_bind()
|
||
|
|
for code in sorted(GRANULAR_PERMISSION_CODES):
|
||
|
|
bits = code.split(".", 1)
|
||
|
|
module = bits[0]
|
||
|
|
action = bits[1] if len(bits) > 1 else "manage"
|
||
|
|
bind.execute(sa.text("INSERT INTO permissions (code,name,module,action,description,is_active) SELECT :code,:name,:module,:action,:description,1 FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM permissions WHERE code=:code)"), {"code": code, "name": f"{module.title()} — {action}", "module": module, "action": action, "description": "Action granulaire configurable"})
|
||
|
|
def downgrade():
|
||
|
|
bind = op.get_bind()
|
||
|
|
for code in sorted(GRANULAR_PERMISSION_CODES):
|
||
|
|
bind.execute(sa.text("DELETE FROM permissions WHERE code=:code"), {"code": code})
|
||
|
|
|