39 lines
1.3 KiB
Python
39 lines
1.3 KiB
Python
with open("/app/app/api/v1/endpoints/users.py", "r") as f:
|
|
lines = f.readlines()
|
|
|
|
admin_check = [
|
|
" # Buscar usuario - ADMIN global puede editar cualquier tenant\n",
|
|
" if current_user.role.value == \"ADMIN\":\n",
|
|
" query = select(User).where(User.id == user_id)\n",
|
|
" else:\n",
|
|
" query = select(User).where(\n",
|
|
" User.id == user_id,\n",
|
|
" User.tenant_id == current_user.tenant_id\n",
|
|
" )\n",
|
|
]
|
|
|
|
# Reemplazar bloques en lineas 198, 305, 382 (0-indexed: 197, 304, 381)
|
|
replaced = 0
|
|
new_lines = lines[:]
|
|
i = 0
|
|
while i < len(new_lines):
|
|
if (new_lines[i].strip() == "# Buscar usuario" and
|
|
i+1 < len(new_lines) and "select(User).where(" in new_lines[i+1] and
|
|
i+2 < len(new_lines) and "User.id == user_id," in new_lines[i+2] and
|
|
i+3 < len(new_lines) and "User.tenant_id == current_user.tenant_id" in new_lines[i+3]):
|
|
|
|
indent = " "
|
|
new_block = admin_check[:]
|
|
# Remove old 4 lines of query block (comment + query 4 lines)
|
|
new_lines[i:i+5] = new_block
|
|
replaced += 1
|
|
i += len(new_block)
|
|
else:
|
|
i += 1
|
|
|
|
print(f"Reemplazos realizados: {replaced}")
|
|
|
|
with open("/app/app/api/v1/endpoints/users.py", "w") as f:
|
|
f.writelines(new_lines)
|
|
print("Listo")
|