from functions.database import get_db_connection, 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() try: # Buscar todos os usuários usuarios = session.query(Usuario).all() # Buscar ou criar role de administrador admin_role = session.query(Role).filter_by(nome="Administrador").first() if not admin_role: admin_role = Role(nome="Administrador", nivel=Role.SECRETARIO_GERAL) session.add(admin_role) # Buscar ou criar role de militante básico militante_role = session.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) # Atualizar usuários for usuario in usuarios: # Se o usuário já tem roles, pular if usuario.roles: continue # Atribuir role com base no is_admin if usuario.is_admin: usuario.roles.append(admin_role) else: usuario.roles.append(militante_role) session.commit() print("Migração de usuários concluída com sucesso!") except Exception as e: session.rollback() print(f"Erro durante a migração de usuários: {str(e)}") raise e finally: session.close() if __name__ == '__main__': migrate_existing_users()