¿Cómo hacer que un grupo sólo vea el submenú de Pedidos de Compra?

676 views
Skip to first unread message

Juan Formoso Vasco

unread,
May 12, 2016, 7:36:47 AM5/12/16
to Usuarios Odoo / OpenERP en España
Hola a todos:

Me gustaría saber cuál es la mejor manera de hacer algo tan simple como que un grupo de usuarios sólo pueda ver un menuitem concreto (en este caso Pedidos de Compra, dentro de Compras > Compras), ya que Odoo no lo pone nada fácil.

Por ejemplo, he creado un nuevo grupo, llamado group_purchase_checker. Los usuarios que pertenezcan a este grupo sólo pueden ver el menú Compras > Compras > Pedidos de Compra y nada más.

Al principio intenté que el grupo no heredase los permisos de ningún otro grupo, pero aún creando su propio archivo de seguridad, no fui capaz de hacerlo así. lo cual no llegué a comprender demasiado bien, porque en el CSV de seguridad tengo esto:

access_purchase_order_checker, purchase.order checker, purchase.model_purchase_order, group_purchase_checker, 1, 1, 1, 1

Y también hice un archivo XML para modificar los menuitem de Compras y que el grupo group_purchase_checker pueda verlos:

<record id="base.menu_purchase_root" model="ir.ui.menu">
   
<field name="groups_id" eval="[(4, ref('group_purchase_checker'))]"/>
</record>

<record id="purchase.menu_procurement_management" model="ir.ui.menu">
   
<field name="groups_id" eval="[(4, ref('group_purchase_checker'))]"/>
</record>

<record id="purchase.menu_purchase_form_action" model="ir.ui.menu">
   
<field name="groups_id" eval="[(4, ref('group_purchase_checker'))]"/>
</record>

Cuando pretendía entrar en la base de datos con un usuario del grupo group_purchase_checker, esperaba ver sólo el menú Compras > Compras > Pedidos de Compra, pero me saltaba este error de permisos:

AccessError: ('AccessError', u'Lo siento, no est\xe1 autorizado para acceder a este documento. S\xf3lo usuarios con los siguientes permisos est\xe1n autorizados a hacer esto:\n- Portal\n\t- Administration/Settings\n\t- Human Resources/Employee\n\n(Modelo de documento: ir.ui.menu)')

Así que al grupo group_purchase_checker le he puesto que herede los permisos de base.group_user. Pero claro, al hacer eso aparecen otros menús que no deseo ver.

¿Cómo puedo ocultarlos? Creo que no existe ningún atributo tipo groups pero al revés, en plan denied_groups, ¿no?

¿Alguien me puede dar una idea de qué podría hacer por favor?

Gracias por adelantado.

Juan Formoso Vasco

unread,
May 12, 2016, 9:09:14 AM5/12/16
to Usuarios Odoo / OpenERP en España
Por cierto, ya no me salta el access error, tenía el modelo ir.ui.menu y otros añadidos al CSV de seguridad, pero se ve que no había actualizado las vistas del módulo.

Sin embargo, ahora al loguarme me sale una pantalla completamente blanco, sin error alguno en el log.

¿Alguien me puede dar una pista, por favor? ¿Cómo puedo conseguir mi objetivo? Si de esta manera es muy complicado y tengo que añadir base.group_user al implied_ids de mi grupo, ¿cómo hago para ocultar a los usuarios de mi grupo los menús de Recursos Humanos, etc... sin ocultárselos al resto de usuarios de otros grupos?

cubells

unread,
May 12, 2016, 12:53:14 PM5/12/16
to openerp-s...@googlegroups.com
El 12/05/16 a les 13:36, Juan Formoso Vasco ha escrit:
> Hola a todos:
>
> Me gustaría saber cuál es la mejor manera de hacer algo tan simple como
> que un grupo de usuarios sólo pueda ver un menuitem concreto (en este
> caso /Pedidos de Compra/, dentro de /Compras > Compras/), ya que Odoo no
> lo pone nada fácil.

O tú quieres complicarte la vida, Juan.

No es tan simple como lo que dices.


Yo he conseguido en algún cliente crear todo un menú de la izquierda
personalizado.

Para hacerlo, tienes que quitar todos los permisos al usuario y crearte
un menú para él sólo con acceso a los modelos necesarios.

En el módulo añadí un ir.model.access.csv personalizado con las reglas
adecuados del grupo.

El "problema gordo" es que para ver una cosa tan simple como los pedidos
de compra que tú dices, dependiendo de lo que pueda ver de los pedidos
de compra el grupo, has de darle permisos a (una linea por cada): los
pedidos, las lineas de los pedidos, los descuentos si los tiene, las
ubicaciones, los impuestos, plazos de pago, modos de pago, proveedores,
etc....

Para hacerlo correctamente tienes que tener un conocimiento bueno de los
modelos.

Se puede conseguir porque yo lo he hecho.

Tú tienes que valorar si vale la pena.


--
Atentament, cubells.
--

Juan Formoso Vasco

unread,
May 13, 2016, 6:05:14 AM5/13/16
to Usuarios Odoo / OpenERP en España
Muchas gracias por responder Cubells.

Entiendo lo que dices de lo de los modelos. De momento, mi objetivo es que si entro con un usuario que sólo pertenezca al grupo Checker, que al menos se vea algo que no sea una página completamente blanca.

He creado una nueva base de datos sin nada, y me he fijado en los permisos de acceso que trae por defecto el grupo Empleado (base.group_user). Si antes de instalar nada, creo un usuario y sólo le doy permisos de Empleado, le quito los de Configuración y Creación de contactos, y me logueo después con este usuario, veo el menú de Odoo, sin opciones, el logo de la empresa, ĺa opción para Cerrar sesión y alguna cosa más, y el resto de la pantalla en blanco. Eso es lo que pretendo conseguir ahora.

Así que he copiado esos permisos de acceso iniciales de Empleado y se los he metido a mi grupo:

id                                  | name                         | model_id:id                        | group_id:id
access_ir_attachment_checker        | ir_attachment checker        | base.model_ir_attachment           | mi_modulo.group_purchase_checker
access_ir_cron_checker              | ir_cron checker              | base.model_ir_cron                 | mi_modulo.group_purchase_checker
access_ir_exports_checker           | ir_exports checker           | base.model_ir_exports              | mi_modulo.group_purchase_checker
access_ir_exports_line_checker      | ir_exports_line checker      | base.model_ir_exports_line         | mi_modulo.group_purchase_checker
access_ir_fields_converter_checker  | ir_fields_converter checker  | base.model_ir_fields_converter     | mi_modulo.group_purchase_checker
access_ir_model_data_checker        | ir_model_data checker        | base.model_ir_model_data           | mi_modulo.group_purchase_checker
access_ir_sequence_checker          | ir_sequence checker          | base.model_ir_sequence             | mi_modulo.group_purchase_checker
access_ir_ui_menu_checker           | ir_ui_menu checker           | base.model_ir_ui_menu              | mi_modulo.group_purchase_checker
access_res_groups_checker           | res_groups checker           | base.model_res_groups              | mi_modulo.group_purchase_checker
access_res_partner_checker          | res_partner checker          | base.model_res_partner             | mi_modulo.group_purchase_checker
access_res_partner_bank_checker     | res_partner_bank checker     | base.model_res_partner_bank        | mi_modulo.group_purchase_checker
access_res_partner_category_checker | res_partner_category checker | base.model_res_partner_category    | mi_modulo.group_purchase_checker
access_res_bank_checker             | res_bank checker             | base.model_res_bank                | mi_modulo.group_purchase_checker
access_res_font_checker             | res_res_font checker         | base.model_res_font                | mi_modulo.group_purchase_checker
access_purchase_order_checker       | purchase_order checker       | purchase.model_purchase_order      | mi_modulo.group_purchase_checker
access_purchase_order_line_checker  | purchase_order_line checker  | purchase.model_purchase_order_line | mi_modulo.group_purchase_checker

El problema es que si a un usuario le marco que sólo pertenezca a mi grupo Checker (le quito el grupo Empleado), el usuario pasa a ser un share user, no sé por qué (lo menciono por si es importante), y cuando me logueo con él, me sale la pantalla completamente en blanco, sin menú de Odoo ni nada. Ḿe he asegurado a través del interfaz que se estén añadiendo las líneas de mi CSV, así que debe faltarme algo.

Después de eso he probado a añadirle también todos los permisos que se añaden al grupo group_system en el archivo de seguridad del módulo base, pero el resultado es el mismo...

¿Me falta algún modelo o grupo de modelos importantes para añadir al CSV de seguridad? ¿Cómo puedo hacer un usuario básico del todo, que aunque no vea menús, al menos vea la barra negra de arriba y la opción de Cerrar sesión?

Un saludo.
Reply all
Reply to author
Forward
0 new messages