# US-MGN-001-008-002: Field-Level Security (Ocultar Campos Sensibles) **RF Asociado:** [RF-MGN-001-008](../../02-modelado/requerimientos-funcionales/mgn-001/RF-MGN-001-008-record-rules-rls.md) **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 - [RF-MGN-001-008](../../02-modelado/requerimientos-funcionales/mgn-001/RF-MGN-001-008-record-rules-rls.md)