[Core] Flujo de Validación y Seguridad #9

Closed
opened 2025-07-12 22:06:48 +00:00 by luis_portillo · 2 comments
  • Implementar la máquina de estados en el modelo lims.test para controlar las transiciones (ej. no se puede validar si no hay resultados ingresados).
  • Crear reglas de registro (ir.rule) para asegurar que:
    • Los recepcionistas solo puedan crear y ver órdenes, pero no ingresar ni validar resultados.
    • Los técnicos puedan ver órdenes asignadas, registrar la toma de muestra e ingresar resultados, pero no validar.
    • Los administradores sean los únicos que puedan mover una prueba al estado validated.
  • Registrar en el chatter de lims.test y stock.lot cada cambio de estado, validación o acción relevante para auditoría.
- Implementar la máquina de estados en el modelo `lims.test` para controlar las transiciones (ej. no se puede validar si no hay resultados ingresados). - Crear reglas de registro (`ir.rule`) para asegurar que: - Los recepcionistas solo puedan crear y ver órdenes, pero no ingresar ni validar resultados. - Los técnicos puedan ver órdenes asignadas, registrar la toma de muestra e ingresar resultados, pero no validar. - Los administradores sean los únicos que puedan mover una prueba al estado `validated`. - Registrar en el chatter de `lims.test` y `stock.lot` cada cambio de estado, validación o acción relevante para auditoría.
Author
Owner

Plan de Implementación - Flujo de Validación y Seguridad

Análisis del estado actual

He revisado el código existente y encontré:

  • Máquina de estados ya implementada en lims.test
  • Grupos de seguridad definidos (Recepcionista, Técnico, Administrador)
  • ⚠️ PROBLEMA CRÍTICO: Permisos demasiado permisivos - todos los usuarios tienen acceso completo
  • ⚠️ Falta validación de permisos en transiciones de estado
  • ⚠️ Falta trazabilidad en stock.lot

Plan de desarrollo (5 fases)

Fase 1: Ajuste de permisos base en ir.model.access.csv

  • Recepcionista: Solo lectura en lims.test y lims.result
  • Técnico: Lectura/escritura pero sin crear/eliminar
  • Administrador: Permisos completos

Fase 2: Crear reglas de registro (ir.rule)

  • Recepcionistas: Solo visualizar pruebas
  • Técnicos: Editar solo pruebas no validadas
  • Administradores: Acceso completo

Fase 3: Validación de transiciones en lims.test

  • action_start_process(): Solo técnicos y administradores
  • action_enter_results(): Solo técnicos y administradores
  • action_validate(): Solo administradores
  • Agregar verificación de grupos antes de cada transición

Fase 4: Mejorar trazabilidad

  • Agregar mail.thread a stock.lot
  • Registrar todos los cambios de estado en chatter
  • Mejorar mensajes con más contexto

Fase 5: Validaciones adicionales

  • No permitir validar sin resultados
  • Controlar transiciones de estado válidas
  • Verificar estado de muestra antes de procesar

Archivos a modificar:

  1. security/ir.model.access.csv
  2. security/lims_security.xml
  3. models/lims_test.py
  4. models/stock_lot.py
  5. views/lims_test_views.xml

Comenzaré el desarrollo en la rama feature/9-validation-security-flow

## Plan de Implementación - Flujo de Validación y Seguridad ### Análisis del estado actual He revisado el código existente y encontré: - ✅ Máquina de estados ya implementada en lims.test - ✅ Grupos de seguridad definidos (Recepcionista, Técnico, Administrador) - ⚠️ **PROBLEMA CRÍTICO**: Permisos demasiado permisivos - todos los usuarios tienen acceso completo - ⚠️ Falta validación de permisos en transiciones de estado - ⚠️ Falta trazabilidad en stock.lot ### Plan de desarrollo (5 fases) #### Fase 1: Ajuste de permisos base en ir.model.access.csv - Recepcionista: Solo lectura en lims.test y lims.result - Técnico: Lectura/escritura pero sin crear/eliminar - Administrador: Permisos completos #### Fase 2: Crear reglas de registro (ir.rule) - Recepcionistas: Solo visualizar pruebas - Técnicos: Editar solo pruebas no validadas - Administradores: Acceso completo #### Fase 3: Validación de transiciones en lims.test - action_start_process(): Solo técnicos y administradores - action_enter_results(): Solo técnicos y administradores - action_validate(): Solo administradores - Agregar verificación de grupos antes de cada transición #### Fase 4: Mejorar trazabilidad - Agregar mail.thread a stock.lot - Registrar todos los cambios de estado en chatter - Mejorar mensajes con más contexto #### Fase 5: Validaciones adicionales - No permitir validar sin resultados - Controlar transiciones de estado válidas - Verificar estado de muestra antes de procesar ### Archivos a modificar: 1. security/ir.model.access.csv 2. security/lims_security.xml 3. models/lims_test.py 4. models/stock_lot.py 5. views/lims_test_views.xml Comenzaré el desarrollo en la rama feature/9-validation-security-flow
Author
Owner

Pull Request #56 creado y listo para merge: luis_portillo/clinical_laboratory#56

La implementación está completa y lista para pruebas. Se han agregado usuarios demo para facilitar las pruebas:

  • recepcionista/demo
  • tecnico/demo
  • administrador/demo
Pull Request #56 creado y listo para merge: https://gitea.grupoconsiti.com/luis_portillo/clinical_laboratory/pulls/56 La implementación está completa y lista para pruebas. Se han agregado usuarios demo para facilitar las pruebas: - recepcionista/demo - tecnico/demo - administrador/demo
Sign in to join this conversation.
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: Grupo-Consiti/clinical_laboratory#9
No description provided.