erp-core/docs/05-user-stories/mgn-001/US-MGN-001-008-002-field-level-security.md

1.5 KiB

US-MGN-001-008-002: Field-Level Security (Ocultar Campos Sensibles)

RF Asociado: RF-MGN-001-008 Módulo: MGN-001 - Fundamentos Epic: Seguridad y Control de Acceso Prioridad: P1 (Post-MVP) Story Points: 5 Sprint: Sprint 5 Fecha: 2025-11-24


User Story

Como sistema de seguridad, Quiero ocultar campos sensibles según permisos del usuario, Para proteger información confidencial (salarios, precios de costo, etc.).


Criterios de Aceptación

Escenario 1: Ocultar campos en API response

Cuando usuario sin permiso 'employee.salary.read' consulta empleados, Entonces campo 'salary' NO aparece en response JSON.

Escenario 2: Ocultar campos en Frontend

Cuando frontend renderiza formulario, Entonces campos sin permiso no se muestran (condicional rendering).


Reglas de Negocio

  • RN-1: Permisos a nivel de campo: model.field.read, model.field.write
  • RN-2: Campos sensibles: salary, cost_price, bank_account, etc.
  • RN-3: Serialización automática excluye campos sin permiso

Tareas Técnicas

  • Decorador: @SensitiveField('employee.salary.read')
  • Serializer automático que filtra campos según permisos
  • Frontend: condicional rendering de campos
  • Tests

Estimación: 5 SP


Referencias