Odoo覆盖对象上的组权限



我在odoo 8中有一个任务,我必须创建一个名为(picker)的用户组,该用户组将继承到仓库用户组。 作为仓库经理 -> 用户 -->测试。 所以我创建了如下用户:

<record id="warehouse_picker" model="res.groups">
    <field name="name">picker </field>
    <field name="category_id" ref="base.module_category_warehouse_management"/>
    <field name="implied_ids" eval="[(4, ref('base.group_user'))]" />
 </record>

我还添加了此代码以向该用户授予菜单仓库的访问权限:

<record id="stock.group_stock_user" model="res.groups">
     <field name="implied_ids" eval="[(4, ref('warehouse_picker')),(4, ref('stock.group_locations'))]"/>
</record>  

现在,组仓库/用户对对象的访问规则(stock.picking)为1,1,1,1。我需要限制/覆盖此规则(股票拣货)为 1,0,0,0

我尝试了以下代码,但不起作用:

<record id="warehouse_picker_rule" model="ir.rule">
    <field name="name">Warehouse Picker Rule</field>
    <field name="model_id" ref="stock.model_stock_picking"/>
    <field name="domain_force">[(1, '=', 1)]</field>
    <field name="groups" eval="[(4, ref('warehouse_picker'))]"/>
    <field name="perm_read" eval="False"/>
    <field name="perm_write" eval="False"/>
    <field name="perm_create" eval="False"/>
    <field name="perm_unlink" eval="True"/>
</record>

有人可以帮助我解决/覆盖现有规则吗? 我不想碰核心模块规则。

谢谢

检查此规则来自哪个模块,然后您可以覆盖如下:

<record id="module.rule_id" model="ir.model.access">
    <field name="perm_read" eval="True"/>
    <field name="perm_write" eval="False"/>
    <field name="perm_create" eval="False"/>
    <field name="perm_unlink" eval="False"/>
</record>

例如,模块是库存的,rule_id(您可以在 GUI 中使用调试模式找到它或查看模块 ir.model.access.csv第一列)move_read_all:

<record id="stock.move_read_all" model="ir.model.access">
    <field name="perm_read" eval="True"/>
    <field name="perm_write" eval="False"/>
    <field name="perm_create" eval="False"/>
    <field name="perm_unlink" eval="False"/>
</record>

如果我理解你的愿望是正确的,那么你必须通过以下方式覆盖它:

<record id="stock.access_stock_picking_user" model="ir.model.access">
    <field name="perm_read" eval="True"/>
    <field name="perm_write" eval="False"/>
    <field name="perm_create" eval="False"/>
    <field name="perm_unlink" eval="False"/>
</record>

您需要将要库存的依赖项放入自定义模块的清单文件中。

做一件事,创建一个名为"ir.model.access.csv"的csv文件,并在其中创建一个记录。

此 csv 文件必须包含以下列。

id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink       
access_id,access_name,model_stock_picking,group_name_external_id,1,0,0,0

并将其添加到openerp.py文件中,因此它将特定模型的此访问权限设置为特定组。假设您要为所有人设置此权限,然后只需保留空白"group_id"字段,然后它将为所有用户设置此默认权限。

最新更新