Restringiendo el acceso a un solo menú

7 de diciembre de 2023 por
Gustavo Orrillo
| Sin comentarios aún
 

A veces nos piden que restrinjamos el acceso de un grupo de usuarios a un solo menú, que es lo que vamos a hacer en el siguiente ejemplo. Supongamos que nos piden que tengamos un grupo de operarios de planta a los que solo queremos darle acceso al listado de productos, y a la lista de ordenes de manufactura. Nada más.

Para demostrar como resolver este pedido, vamos a desarrollar un pequeño módulo llamado menu_mrp_operator. En este menú primero definimos un nuevo grupo llamado Operador que pertenece a la categoría de Manufactura

<record id="group_mrp_operator" model="res.groups">
​<field name="name">Operador</field>
​<field name="category_id"
​ref="base.module_category_manufacturing_manufacturing"/>
​<field name="implied_ids" eval="[(4, ref('mrp.group_mrp_user'))]"/>
​<field name="users"
​eval="[(4, ref('base.user_root')), (4, ref('base.user_admin'))]"/>
</record>

Lo cual nos crea un grupo extra en la seccion Manufactura de los usuarios


Paso siguiente, debemos definir el menú del operador. Para ello creamos un menú principal (sin padre) el cual se encontrará restringido al grupo que acabamos de crear:

    <menuitem
id="menu_mrp_operador"
name="Operador"
sequence="100"
groups="menu_mrp_operator.group_mrp_operator"
/>

Lo que crea el menú principal de Operador


Ahora vamos a crear dos submenúes, uno para operaciones y otro para productos. Y dichos submenúes invocarán las acciones que muestran las vistas tree de los productos y de las órdenes de manufactura.

    <menuitem
id="menu_mrp_operador_operaciones"
name="Operaciones"
sequence="100"
parent="menu_mrp_operador"
/>

<menuitem
id="menu_mrp_operador_productos"
name="Productos"
sequence="200"
parent="menu_mrp_operador"
/>

<menuitem
id="menuitem_mrp_operador_productos"
name="Productos"
sequence="200"
parent="menu_mrp_operador_productos"
action="mrp.product_template_action"
/>

<menuitem
id="menu_mrp_operador_operaciones"
name="Operaciones"
sequence="100"
parent="menu_mrp_operador"
/>

<menuitem
id="menuitem_mrp_operador_operaciones"
name="Operacioness"
parent="menu_mrp_operador_operaciones"
action="mrp.mrp_production_action" />

Lo que al seleccionar el menú principal del Operador, nos muestra lo siguiente:


El código a modo de ejemplo lo podemos encontrar en nuestro repositorio, en el módulo menu_mrp_operator.

Ocultando menúes a los usuarios

 
Por último, necesitamos que el usuario solo vea el menú de Operador. Para ello debemos ocultar el resto de los menúes para dicho usuario. El módulo hide_menu_user desarrollado por Cibrosys cumple con dicha función.

Después de instalar el módulo hide_menu_user, podemos indicar para el usuario que menúes queremos ocultar del mismo



Luego, cuando ingresamos al sistema como el usuario, veremos el siguiente menú reducido

 



Gustavo Orrillo 7 de diciembre de 2023
Compartir
Categorías
Archivar
Identificarse dejar un comentario