在openerp中向模块添加安全性时发生错误

时间:2013-05-17 05:10:17

标签: openerp

我已经在openerp中创建了一个新模块现在我想为模块提供安全性,因为我在我的模块文件夹中创建了一个名为“security”的文件夹,并创建了一个xml文件和ir.model.access.csv文件我的目标是我想为我的模块创建两个角色,一个是经理,另一个是用户。  为此,我在xml文件中添加了以下代码

<record id="group_mat_mgmt_user" model="res.groups">
        <field name="name">User</field>
        <field name="category_id" ref="base.module_category_mat_mgmt"/>
        <field name="implied_ids" eval="[(4, ref('base.group_user'))]"/>
    </record>
    <record id="group_mat_mgmt_manager" model="res.groups">
        <field name="name">Manager</field>
        <field name="category_id" ref="base.module_category_mat_mgmt"/>
        <field name="implied_ids" eval="[(4, ref('group_mat_mgmt_user'))]"/>
        <field name="users" eval="[(4, ref('base.user_root'))]"/>
    </record>

在视图部分我添加了这样的

<menuitem name="Materials Management" id="menu_mat_mgmt_root"
        groups="group_mat_mgmt_manager,group_mat_mgmt_user"
        sequence="80"/>

然后在csv给出的权限,但我得到了这样的错误

  

文件   “C:\ OpenERP的\ OpenERP的\ openobject服务器\ OpenERP的\插件\基\ IR \ ir_model.py”,   第850行,在_get_id中引发ValueError('没有这样的外部ID   当前在系统中定义:%s。%s'%(module,xml_id))alueError:   目前系统中没有定义此类外部ID:   mat_mgmt.group_mat_mgmt_manager

1 个答案:

答案 0 :(得分:3)

看起来您没有按顺序在 openerp .py中添加文件。您是从CSV文件还是从View.xml文件中收到此错误?

您需要检查 openerp .py文件。您可以首先分配ir.model.access.csv / module_view.xml,然后在'data'属性中分配module_security.xml。所以它将首先检查ir.model.access.csv / module_view.xml,它将找不到你在security.xml中创建的那个组,它将在加载ir.model.access.csv / module_view.xml后加载文件。您可以检查它,然后需要传递第一个security.xml,之后, openerp .py中的ir.model.access.csv / module_view.xml文件。

您也可以通过分配这样的组进行检查:module_name.GROUP_XML_ID,无论您在哪里分配/使用这些组。