Saltar a contenido

Seguridad y varias compañías

Para quién es esta guía

Para la persona que configura usuarios y para quien deba comprobar que la separación de datos realmente funciona, por ejemplo antes de una auditoría. Los usuarios del día a día normalmente no necesitan esta página.

Qué logrará: entender quién puede ver cada dato, comprobar que la separación funciona y corregir problemas de acceso cuando aparezcan.


La regla del negocio, sin tecnicismos

Dos compañías comparten una misma base de datos de Odoo:

  • Reyder Enterprises — dirige la operación, administra las relaciones con clientes y procesa las órdenes de venta y facturas de Reyder. Un usuario que pertenece solo a Reyder ve los registros de Reyder y los equipos consignados permitidos por un acuerdo activo; no ve automáticamente todos los registros de ambas compañías.
  • Axis Mobile — es propietaria de los equipos y recibe los pagos de liquidación. Debe ver solamente sus propios equipos y sus informes de liquidación como propietaria. No debe ver los nombres de los clientes de Reyder, precios de venta, números de SO ni manifiestos internos.

Esto no depende de pedirle a alguien que “no mire”. Para usuarios normales, las reglas de registro de Odoo controlan las operaciones ORM usadas por la interfaz y la API. No son seguridad por filas de la base de datos: SQL directo y la ejecución como SUPERUSER pueden omitir los controles ORM, por lo que esas capacidades se reservan a administradores de sistema de confianza y están fuera del límite de acceso de operadores.


Comparación rápida

Un usuario de Axis ve Un usuario de Reyder ve
Sus equipos (IMEI, modelo, grado y estado) Equipos de Reyder y equipos de Axis permitidos por consignación
Solamente informes de liquidación de Axis como propietaria Solamente informes de liquidación de Reyder como consignataria
Sus acuerdos de consignación Sus acuerdos de consignación
El estado reservado de sus equipos (en stock.lot), pero no el registro de la reserva Reservas minoristas completas, porque Reyder es la compañía que mantiene el inventario
Trazabilidad de sus equipos Operaciones completas de almacén
— ningún nombre de cliente Todos los datos de clientes
— ningún precio de venta Todos los precios
— ningún número de SO Todas las SO
— ningún manifiesto de Reyder Todos los manifiestos

Configurar correctamente a los usuarios

Asigne cada persona a la compañía correcta

Un usuario que trabaja para Axis debe pertenecer solo a Axis. Un usuario que trabaja para Reyder debe pertenecer solo a Reyder. Solamente los administradores del sistema deben pertenecer a las dos.

Abra Settings → Users & Companies → Users y edite el usuario:

Asignación de grupos y compañías del usuario

  • Companies — marque únicamente las compañías para las que trabaja esa persona.
  • Default Company — la compañía con la que inicia sesión.

Si una persona realmente trabaja para ambas, puede pertenecer a ambas y el sistema amplía automáticamente su contexto de compañías. Pero asignar ambas compañías a todo el mundo invalida la prueba de separación.

Perfiles de prueba

Tipo de cuenta Pertenece a Propósito
Administrador de ambas compañías Ambas compañías Administración e investigación entre compañías expresamente autorizada
Usuario de prueba de Axis creado por un administrador Solo Axis Mobile Comprobar que un usuario exclusivo de Axis no puede ver datos de Reyder

Pruebe siempre con un perfil real de una sola compañía

Un administrador de ambas compañías no sirve para probar la separación. Pida a un administrador que prepare una cuenta de prueba aprobada que pertenezca solo a Axis, guarde su contraseña en el sistema de credenciales autorizado y nunca publique ni comparta esa contraseña en una guía.


Qué hace cumplir la separación

Para el acceso normal, el límite de seguridad combina reglas de registro y minimización de datos en el modelo. Los enlaces de un solo sentido y los campos invisibles reducen la exposición accidental, pero no son límites independientes para API o exportación ni sustituyen los dos primeros controles. SQL directo y SUPERUSER siguen siendo capacidades exclusivas de administración y quedan fuera de este modelo.

Capa 1 — Reglas de registro (la protección principal)

Las reglas de registro de Odoo filtran lecturas y escrituras ORM realizadas mediante la interfaz y API normales. El módulo añade estas reglas a las protecciones de inventario:

Modelo Dominio Resultado
Informe de liquidación company_id in company_ids Axis ve solo sus informes de propietaria; Reyder ve solo sus informes de consignataria
Línea de informe de liquidación Sigue el informe principal Las líneas solo son visibles si el usuario puede ver el informe
Manifiesto de equipos company_id in company_ids Cada compañía ve solamente sus manifiestos
Acuerdo de consignación owner in company_ids OR consignee in company_ids Ambas partes del acuerdo pueden verlo
stock.lot (equipo) Regla especial explicada abajo La consignataria puede ver equipos de la propietaria cuando el acuerdo está activo
Orden de transferencia source OR destination in company_ids Ambas partes pueden verla
Venta minorista company_id in company_ids Limitada a la compañía
Reserva minorista holding_company_id in company_ids Solo la compañía que mantiene el inventario; la propietaria ve el estado reservado en stock.lot, no el registro de reserva
Asignación de equipo a línea de SO La compañía de la SO está permitida y el equipo pertenece a una compañía permitida o es visible para una consignataria autorizada Exige a la vez una SO permitida y una relación de propietaria/consignataria permitida

Capa 2 — El informe de la propietaria no contiene el detalle comercial privado

Cuando el sistema crea un owner settlement report, omite de sus líneas el cliente, precio de venta, fecha de venta, referencia de la sales order y comisión de la consignataria. La propietaria recibe IMEI, descripción del equipo e importe adeudado: lo necesario para conciliar el pago sin exponer la información comercial de Reyder.

Capa 3 — El enlace de un solo sentido reduce exposición

El campo paired_report_id apunta solamente consignataria → propietaria. El informe de la propietaria no contiene un enlace inverso hacia el informe de la consignataria. Eso reduce la navegación normal y la exposición accidental; las reglas de registro y la minimización de datos siguen siendo el límite de acceso.

Capa 4 — Campos ocultos para facilidad de uso y defensa adicional

En el formulario del informe de liquidación, sale_order_id tiene la condición invisible="report_type == 'owner'"; por lo tanto, el campo no se muestra en la interfaz del informe de la propietaria. Esto mantiene el formulario claro y reduce la exposición accidental, pero la invisibilidad por sí sola nunca es un límite de seguridad para API o exportación.


Regla de visibilidad del equipo (stock.lot)

El módulo reemplaza la regla estándar de stock.lot por una regla que entiende la consignación.

Una persona puede ver un equipo si se cumple por lo menos una de estas condiciones:

  1. company_id pertenece a su lista de compañías; es un equipo de su compañía, o
  2. company_id está vacío; todavía no tiene compañía asignada, o
  3. owner_company_id pertenece a su lista de compañías; esa compañía es la propietaria, o
  4. consignee_company_ids contiene una de sus compañías; es una consignataria autorizada por un acuerdo activo.

La cuarta regla es lo que permite que Reyder vea el inventario de Axis al activar el acuerdo Reyder–Axis y deje de verlo cuando el acuerdo termina.

Consulte Acuerdos de consignación para entender cómo un acuerdo activo habilita esa relación.


Cómo comprobar la separación manualmente

Haga esta prueba breve:

  1. Cierre la sesión.
  2. Inicie sesión con una cuenta de prueba exclusiva de Axis, creada por un administrador y obtenida mediante el proceso interno autorizado.
  3. Intente abrir Device Ops → Fulfillment → Customer Manifests. No debe ver resultados de entregas de Reyder.
  4. Abra Device Ops → Consignment → Settlement Reports. Debe ver solamente referencias SETTLE/OWN/*, nunca SETTLE/CON/*.
  5. Abra un informe de propietaria. No debe haber cliente, precio de venta ni número de SO.

Si cualquiera de estas pruebas muestra datos de Reyder, deténgase y escálelo como un incidente de control de acceso. La causa más común es que la cuenta de prueba también fue habilitada por error para Reyder.


Problemas comunes

Un usuario de Axis ve datos de Reyder

Abra Settings → Users y revise el usuario de Axis. Companies debe contener únicamente Axis Mobile. Si Reyder aparece allí, retírela. Esta es la causa más frecuente de exposición indebida.

Un administrador de ambas compañías no muestra la separación

Es el comportamiento esperado: esa cuenta tiene autorización para las dos compañías y no sirve como prueba de aislamiento. Use una cuenta de prueba de Axis creada por un administrador y limitada a una sola compañía.

Un usuario de Reyder no ve los equipos de Axis

Confirme que el acuerdo esté Active y que la fecha de hoy esté dentro de Start/End. Un acuerdo suspendido usa Reactivate, no Activate. Un acuerdo vigente actualiza la visibilidad automáticamente; si todavía falta un equipo que debería coincidir, no edite sus compañías: envíe a soporte las referencias del acuerdo y del IMEI.

Un informe de liquidación aparece en las dos compañías

Deténgase y escálelo como incidente de control de acceso. No cambie la compañía del informe, no lo elimine y no cambie su estado. Envíe a soporte la referencia del informe, la compañía activa, el perfil del usuario y una captura de lo que se veía.

Las tareas programadas se ejecutan como SUPERUSER y pueden saltarse las reglas

Correcto: SUPERUSER_ID=1 no está limitado por las reglas de registro. Esto es intencional para las tareas programadas y procesos internos. La protección se aplica cuando una sesión de usuario lee los datos. El sistema puede escribir registros en ambos lados, pero las reglas siguen filtrando lo que cada usuario puede leer.


Punto de control del administrador

Antes de incorporar usuarios de cualquiera de las compañías, pruebe los mismos registros representativos con un perfil exclusivo de Axis, uno exclusivo de Reyder y un administrador autorizado de ambas compañías. Registre la fecha y el resultado. Los procedimientos de consola y detalles de implementación pertenecen al manual privado de ingeniería, no a esta guía para operadores.

Revisado el 22-07-2026 · Device Inventory 19.0.2.57.0 · Use la etiqueta exacta de pantalla que aparece en negrita.