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""" db = get_db_session() try: # Buscar todos os usuários usuarios = db.query(Usuario).all() # Buscar ou criar role de administrador admin_role = db.query(Role).filter_by(nome="Administrador").first() if not admin_role: admin_role = Role(nome="Administrador", nivel=Role.SECRETARIO_GERAL) db.add(admin_role) # Buscar ou criar role de militante básico 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) db.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) db.commit() print("Migração de usuários concluída com sucesso!") except Exception as e: db.rollback() print(f"Erro durante a migração de usuários: {str(e)}") raise e finally: db.close() if __name__ == '__main__': migrate_existing_users()