61 lines
1.9 KiB
Python
61 lines
1.9 KiB
Python
with open("/app/app/api/v1/endpoints/users.py", "r") as f:
|
|
content = f.read()
|
|
|
|
from app.models.user import UserRole as _UserRole
|
|
|
|
# Reemplazar el patron comun de query con filtro de tenant
|
|
# por una version que permite a ADMIN ver todos los tenants
|
|
|
|
old_get_user = """ query = select(User).where(
|
|
User.id == user_id,
|
|
User.tenant_id == current_user.tenant_id
|
|
)
|
|
result = await db.execute(query)
|
|
user = result.scalar_one_or_none()
|
|
if not user:"""
|
|
|
|
new_get_user = """ if current_user.role.value == "ADMIN":
|
|
query = select(User).where(User.id == user_id)
|
|
else:
|
|
query = select(User).where(
|
|
User.id == user_id,
|
|
User.tenant_id == current_user.tenant_id
|
|
)
|
|
result = await db.execute(query)
|
|
user = result.scalar_one_or_none()
|
|
if not user:"""
|
|
|
|
old_update_user = """ query = select(User).where(
|
|
User.id == user_id,
|
|
User.tenant_id == current_user.tenant_id
|
|
)
|
|
result = await db.execute(query)
|
|
db_user = result.scalar_one_or_none()
|
|
if not db_user:"""
|
|
|
|
new_update_user = """ if current_user.role.value == "ADMIN":
|
|
query = select(User).where(User.id == user_id)
|
|
else:
|
|
query = select(User).where(
|
|
User.id == user_id,
|
|
User.tenant_id == current_user.tenant_id
|
|
)
|
|
result = await db.execute(query)
|
|
db_user = result.scalar_one_or_none()
|
|
if not db_user:"""
|
|
|
|
count = 0
|
|
for old, new in [(old_get_user, new_get_user), (old_update_user, new_update_user)]:
|
|
occurrences = content.count(old)
|
|
if occurrences > 0:
|
|
content = content.replace(old, new)
|
|
count += occurrences
|
|
print(f"OK: {occurrences} ocurrencia(s) reemplazada(s)")
|
|
else:
|
|
print(f"SKIP: bloque no encontrado")
|
|
|
|
with open("/app/app/api/v1/endpoints/users.py", "w") as f:
|
|
f.write(content)
|
|
|
|
print(f"Total: {count} reemplazos aplicados")
|