- inits centralizados, READMEs atualizados
- padronizando o nome de get_db_connection e session para get_db_session, para não confundir com session do Flask ou sessoes web
- corrigindo potenciais erros
-- has_permission nao consegue com lazy load carregar permission depois de load_user fechar a conexao, entao joinedLoad com Permission antes de fechar
-- db.rollback não existe caso db = get_db_session() apareça muito depois dentro do try, padronizando antes de try
--- comparar role por nivel (Role.SECRETARIO_GERAL) e nao por nome ("Secretario Geral")
- unificacao de get_otp_qr_code
- mudança de nowutc() para now(UTC) conforme novo padrão
This commit is contained in:
@@ -2,10 +2,15 @@ import os
|
||||
import sqlite3
|
||||
import sys
|
||||
from pathlib import Path
|
||||
from dotenv import load_dotenv
|
||||
|
||||
# Adiciona o diretório raiz ao PYTHONPATH
|
||||
root_dir = str(Path(__file__).parent.parent)
|
||||
sys.path.append(root_dir)
|
||||
ROOT_DIR = Path(__file__).resolve().parents[1]
|
||||
if str(ROOT_DIR) not in sys.path:
|
||||
sys.path.insert(0, str(ROOT_DIR))
|
||||
|
||||
# Carregar .env antes de importar módulos
|
||||
load_dotenv(ROOT_DIR / ".env")
|
||||
|
||||
from functions.base import Base, engine
|
||||
from functions.database import init_database
|
||||
@@ -63,4 +68,4 @@ def migrate_database():
|
||||
print("Migração concluída com sucesso!")
|
||||
|
||||
if __name__ == '__main__':
|
||||
migrate_database()
|
||||
migrate_database()
|
||||
|
||||
@@ -1,25 +1,25 @@
|
||||
from functions.database import get_db_connection, Usuario
|
||||
from functions.database import get_db_session, Usuario
|
||||
from functions.rbac import Role, Permission
|
||||
|
||||
def migrate_existing_users():
|
||||
"""Migra os usuários existentes para o novo sistema RBAC"""
|
||||
session = get_db_connection()
|
||||
db = get_db_session()
|
||||
|
||||
try:
|
||||
# Buscar todos os usuários
|
||||
usuarios = session.query(Usuario).all()
|
||||
usuarios = db.query(Usuario).all()
|
||||
|
||||
# Buscar ou criar role de administrador
|
||||
admin_role = session.query(Role).filter_by(nome="Administrador").first()
|
||||
admin_role = db.query(Role).filter_by(nome="Administrador").first()
|
||||
if not admin_role:
|
||||
admin_role = Role(nome="Administrador", nivel=Role.SECRETARIO_GERAL)
|
||||
session.add(admin_role)
|
||||
db.add(admin_role)
|
||||
|
||||
# Buscar ou criar role de militante básico
|
||||
militante_role = session.query(Role).filter_by(nome="Militante Básico").first()
|
||||
militante_role = db.query(Role).filter_by(nome="Militante Básico").first()
|
||||
if not militante_role:
|
||||
militante_role = Role(nome="Militante Básico", nivel=Role.MILITANTE_BASICO)
|
||||
session.add(militante_role)
|
||||
db.add(militante_role)
|
||||
|
||||
# Atualizar usuários
|
||||
for usuario in usuarios:
|
||||
@@ -33,15 +33,15 @@ def migrate_existing_users():
|
||||
else:
|
||||
usuario.roles.append(militante_role)
|
||||
|
||||
session.commit()
|
||||
db.commit()
|
||||
print("Migração de usuários concluída com sucesso!")
|
||||
|
||||
except Exception as e:
|
||||
session.rollback()
|
||||
db.rollback()
|
||||
print(f"Erro durante a migração de usuários: {str(e)}")
|
||||
raise e
|
||||
finally:
|
||||
session.close()
|
||||
db.close()
|
||||
|
||||
if __name__ == '__main__':
|
||||
migrate_existing_users()
|
||||
Reference in New Issue
Block a user