Como limitar el acceso de los usuarios a los objetos?

28 de junio de 2025 por
Gustavo Orrillo
| Sin comentarios aún
 

Dias atrás surgió la pregunta en la lista de Whatsapp. Como hago para que un vendedor solo pueda ver una lista de precios determinada? Es un buen ejemplo de como aplicar reglas de registro para limitar que registros pueden ver los usuarios. No se olviden que: las listas de acceso indican que modelos pueden leer los usuarios. Por ejemplo; los vendedores pueden leer y actualizar los pedidos de venta, el personal de almacen puede leer y actualizar las transferencias. Ahora si necesitamos que un vendedor pueda leer solo una sola lista de precios? O que un usuario de almacen pueda ver las transferencias de un solo deposito? Ahi necesitamos las reglas de registro. 

Las reglas de registros nos permiten definir condiciones con las cuales establecemos que registros pueden ser actualizados, leidos, creados, borrados por un grupo de usuarios. Las reglas de registro las vamos a encontrar listadas en Ajustes > Tecnico > Seguridad > Reglas de registro


Cada regla de registro tiene varios componentes: sobre que modelo se aplica (por ejemplo ordenes de venta), para que acciones (leer, modificar, crear, borrar), a que grupo de usuarios se va a aplicar la regla, y por sobre todo el dominio (o condicion) en la que se aplica la regla.


Considero que lo mas importante es el dominio de la regla de registro, ya que con las customizaciones necesarias odemos lograr bastante. Un dominio es una regla de busqueda que indica para que registros se aplica la busqueda. Por ejemplo, si necesitamos que se vean todos los registros hacemos asi:

[('1','=','1')]

Ya que dicha condicion se evalua a verdadero, se pueden leer todos los registros. Ahora supongamos que cada vendedor tiene un campo llamado allowed_pricelist_ids. Dicho campo permite definir que listas de precio puede ver dicho vendedor y es del tipo many2many. Como hacemos para definir el dominio de la regla de registro de la lista de precios?

[('id','in',user.allowed_pricelist_ids.ids)]

Entonces para solucionar la pregunta inicial de "como hago que un vendedor vea una lista de precios determinada?" solo debemos crear el campo de las listas de precio permitidas en el usuario (lo que puedo hacer facilmente con el Odoo Studio) y despues definiri correctamente la regla de registro.


Gustavo Orrillo 28 de junio de 2025
Compartir
Categorías
Archivar
Identificarse dejar un comentario