如何在自定义模块中创建新用户组?

时间:2018-04-26 20:06:53

标签: odoo odoo-10

我想为特定组的新模型分配权限。这个新组将被称为“产品扩展用户”,因为它可以访问“产品扩展”模型和自定义模块。

如果我在ir.mode.access.csv中执行此操作,我希望能够为特定模型启用此组的访问权限。

id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_product_extended_user_group,product.extended.user,model_product_extended,base.group_product_extended_user,1,1,1,1

但是,该组未创建,因此XMLID base.group_product_extended_user不存在,我怀疑它必须以base.为前缀。

如何创建此类组,而不是手动创建,而是从自定义模块数据文件中导入?

2 个答案:

答案 0 :(得分:3)

首先创建ir.model.access.csv文件并添加以下代码。

id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_product_extended_user,product.extended.user,model_product_extended,module_name.group_product_extended_user,1,1,1,1

在这种情况下,型号名称为product.extended,组名称为group_product_extended_user

之后,您需要在xml文件中添加此代码。

<record model="res.groups" id="group_product_extended_user">
    <field name="name">Group name</field>
    <field name="category_id" ref="module.category_id"/>
</record>

将此xmlir.model.access.csv文件添加到清单文件的数据属性中。您将能够以这种方式创建一个组。

答案 1 :(得分:1)

  

如果ir.model.access.csvxml在同一模块中定义,那么如何在ir.model.access.csv文件中引用此特定组?

  1. __openerp__.py(或更新的Odoo版本中的__manifest__.py)文件中,确保在ir.model.access.csv文件之前加载创建该组的文件。

    < / LI>
  2. 像对待任何其他群组一样召唤:your_module_name.group_xml_id

  3. <强> ir.model.access.csv

    id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
    access_product_extended_user_group,product.extended.user,model_product_extended,your_module_name.group_xml_id,1,1,1,1