一个模型的两个规则

时间:2017-07-13 12:40:28

标签: openerp odoo-10

我需要使用两个res_partner

groups表格上应用两条规则

群组:StaffManager

菜单项:Customer和'员工'

两种观点的模型:res_partner

  1. 群组Staff中的用户只能看到staff菜单详细信息(仅限读取权限)
  2. 但他们需要拥有Customer的完全访问权限(读取,写入,创建和取消链接)
  3. 管理员中的用户应具有对两种视图的完全访问权限。
  4. 我试过下面的代码

     <record model="ir.rule" id="staff_staff_rule">
        <field name="name">Readonly for staff</field>
        <field name="model_id" ref="base.model_res_partner"/>
        <field name="domain_force">[(1,'=',1)]</field>
        <field name="perm_create" eval="False"/>
        <field name="perm_read" eval="True"/>
        <field name="perm_write" eval="False"/>
        <field name="perm_unlink" eval="False"/>
        <field name="groups" eval="[(4, ref('appartment.group_appartment_staff'))]"/>
      </record>
    

    但用户仍然可以创建,编辑,阅读和删除员工组中的记录。

    我怎样才能实现这一点。

2 个答案:

答案 0 :(得分:1)

您应该提供仅显示员工的正确域名。当你把它 您指明该组被禁止只阅读此记录的域名。

<record model="ir.rule" id="staff_staff_rule">
    <field name="name">Readonly for staff</field>
    <field name="model_id" ref="base.model_res_partner"/>
                         <!-- put the right domain -->
    <field name="domain_force">[('partner_type','=', 'staff')]</field>
    <field name="perm_create" eval="False"/>
    <field name="perm_read" eval="True"/>
    <field name="perm_write" eval="False"/>
    <field name="perm_unlink" eval="False"/>
    <field name="groups" eval="[(4, ref('appartment.group_appartment_staff'))]"/>
  </record>

答案 1 :(得分:1)

我认为使用csv(安全访问文件)可以轻松完成。 您可以直接从csv文件管理此类情况,并将该文件添加到 openerp .py / 清单 .py文件中。

CSV文件示例

id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_res_partner,res_partner_user_access,model_res_partner,appartment.group_appartment_staff,1,0,0,0   
access_manager_res_partner,res_partner_manager_access,model_res_partner,appartment.group_appartment_manager,1,1,1,1 
  

<强>规则

     

规则用于对每条记录应用条件   一直试图访问。

     

访问控制列表

     

ir.model.access /访问控制列表用于管理权限   (只有模型访问用户是否可以读/写/创建/删除或   不是)。

@Cherif Odoo解释了规则,这里是访问控制列表。通过这两种方式管理证券。