1.5 KiB
1.5 KiB
F-154 — Admin: separate customers from internal users
Problem
El panel admin muestra usuarios mezclados. GET /users (módulo users) devuelve
TODOS los identity_users (clientes + backoffice) y GET /admin/users (módulo security)
por defecto también devuelve todos. La página Customers llama a /api/users y la página
Users llama a /api/admin/users; como ambos devuelven todo, ambos listados aparecen
mezclados (conceptos de identity/storefront con backoffice en un mismo listado).
Goal
Customers muestra SOLO clientes storefront (role = 'customer'); Users muestra SOLO
usuarios internos/backoffice (role != 'customer'). Separación forzada en el backend
(single source of truth), no solo filtrado cliente.
Scope IN
project/src/modules/users(listCustomers/GET /users): filtrarrole = 'customer'.project/src/modules/security(GET /admin/users): defaultrole != 'customer';?role=admin|editorsigue afinando dentro de internos.project/apps/admin/.../users/page.tsx: quitar opcióncustomerdel dropdown (Users = backoffice).- Tests unitarios (mock pool, sin DB) + actualizar itest AC2/AC3.
Scope OUT
- No se crea
/customers(el cliente ya consume/users). /users/:id,/users/:id/addresses(owner-or-admin) siguen sin filtro por rol (un admin ve el perfil de cualquier usuario; un cliente ve el suyo).- No migración (identity_users.role ya existe, NOT NULL con default 'customer').
- Frontend Customer page: sin cambio (ya llama /users → ahora customer-only).
Type
fix — high priority / high risk.