我需要使用两个res_partner
groups
表格上应用两条规则
群组:Staff
和Manager
菜单项:Customer
和'员工'
两种观点的模型:res_partner
。
Staff
中的用户只能看到staff
菜单详细信息(仅限读取权限)Customer
的完全访问权限(读取,写入,创建和取消链接)我试过下面的代码
<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>
但用户仍然可以创建,编辑,阅读和删除员工组中的记录。
我怎样才能实现这一点。
答案 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解释了规则,这里是访问控制列表。通过这两种方式管理证券。