odoo8.0【行级别权限】 变相实现员工只能看到归属自己的单据
2016-08-12 17:40
671 查看
一、同部门内员工可看到部门内单据,特殊工号可看到全量单据
1、在res_users中增加列section_ids,与crm.case.section模型中的member_ids列对应
classres_users(osv.Model):
_inherit = 'res.users'
_columns = {
'section_ids':fields.many2many('crm.case.section', 'sale_member_rel','member_id','section_id', 'TeamMembers'),
}
2、配置规则,以采购订单为例
<record model="ir.rule" id="purchase_order_supplier_my_rule">
<field name="name">采购订单规则</field>
<field name="model_id" ref="model_purchase_order_supplier"/>
<field name="global" eval="True"/>
<field name="domain_force">['|',('create_uid.default_section_id','=',False),('create_uid.default_section_id','child_of',[g.idfor g in user.section_ids])]</field>
<field name="perm_read" eval="True"/>
<field name="perm_write" eval="True"/>
<field name="perm_unlink" eval="True"/>
<field name="perm_create" eval="True"/>
</record>
3、在ODOO中设置——用户——用户
(1)配置团队及团队成员
![](https://oscdn.geek-share.com/Uploads/Images/Content/202008/06/2a2120688348239f758e337227f282da)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202008/06/3be24b28969100b6d53063c8ad5d7749)
采购团队:谷岫珊
李爽
李中朋
销售团队:
李爽
(2)配置用户的“缺省的销售团队”
谷岫珊
:采购团队
李中朋:采购团队
admin:销售团队
4、谷岫珊
和
李中朋
看到的订单条数是一样的;李爽可以看到全量订单
![](https://oscdn.geek-share.com/Uploads/Images/Content/202008/06/96d91e190ed52fa84e0d55df6d1c5def)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202008/06/8e189573e6a776d392bb8c159037ade8)
二、员工个人只看到自己创建的单据,部门经理可看到所属员工所有单据
1、增加一个部门领导的字段
classres_users(osv.Model):
_inherit = 'res.users'
_columns = {
'parent_id':fields.many2one('res.users', 'Related Contacts', select=True),
'child_ids':fields.one2many('res.users', 'parent_id', 'Contacts',domain=[('active','=',True)]),
}
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<record model="ir.ui.view" id="odoo8_res_users_form_inherit">
<field name="name">res.users.form.inherit</field>
<field name="model">res.users</field>
<field name="inherit_id" ref="base.view_users_form"/>
<field name="arch"type="xml">
<xpath expr="//notebook" position="inside">
<page string="部门经理">
<group string="部门经理" name="manager">
<field name="parent_id" string="部门经理"/>
</group>
</page>
</xpath>
</field>
</record>
</data>
</openerp>
2、页面配置部门经理
![](https://oscdn.geek-share.com/Uploads/Images/Content/202008/06/beeebca0e5aa27c028959b02b2e4fc38)
3、配置规则
<record model="ir.rule" id="purchase_order_supplier_my_rule">
<field name="name">采购订单规则</field>
<field name="model_id" ref="model_purchase_order_supplier"/>
<field name="global" eval="True"/>
<field name="domain_force">['|','|',('create_uid.parent_id','=',False),('create_uid','=',user.id),('create_uid','child_of',[g.idfor g in user.child_ids])]</field>
<field name="perm_read" eval="True"/>
<field name="perm_write" eval="True"/>
<field name="perm_unlink" eval="True"/>
<field name="perm_create" eval="True"/>
</record>
1、在res_users中增加列section_ids,与crm.case.section模型中的member_ids列对应
classres_users(osv.Model):
_inherit = 'res.users'
_columns = {
'section_ids':fields.many2many('crm.case.section', 'sale_member_rel','member_id','section_id', 'TeamMembers'),
}
2、配置规则,以采购订单为例
<record model="ir.rule" id="purchase_order_supplier_my_rule">
<field name="name">采购订单规则</field>
<field name="model_id" ref="model_purchase_order_supplier"/>
<field name="global" eval="True"/>
<field name="domain_force">['|',('create_uid.default_section_id','=',False),('create_uid.default_section_id','child_of',[g.idfor g in user.section_ids])]</field>
<field name="perm_read" eval="True"/>
<field name="perm_write" eval="True"/>
<field name="perm_unlink" eval="True"/>
<field name="perm_create" eval="True"/>
</record>
3、在ODOO中设置——用户——用户
(1)配置团队及团队成员
采购团队:谷岫珊
李爽
李中朋
销售团队:
李爽
(2)配置用户的“缺省的销售团队”
谷岫珊
:采购团队
李中朋:采购团队
admin:销售团队
4、谷岫珊
和
李中朋
看到的订单条数是一样的;李爽可以看到全量订单
二、员工个人只看到自己创建的单据,部门经理可看到所属员工所有单据
1、增加一个部门领导的字段
classres_users(osv.Model):
_inherit = 'res.users'
_columns = {
'parent_id':fields.many2one('res.users', 'Related Contacts', select=True),
'child_ids':fields.one2many('res.users', 'parent_id', 'Contacts',domain=[('active','=',True)]),
}
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<record model="ir.ui.view" id="odoo8_res_users_form_inherit">
<field name="name">res.users.form.inherit</field>
<field name="model">res.users</field>
<field name="inherit_id" ref="base.view_users_form"/>
<field name="arch"type="xml">
<xpath expr="//notebook" position="inside">
<page string="部门经理">
<group string="部门经理" name="manager">
<field name="parent_id" string="部门经理"/>
</group>
</page>
</xpath>
</field>
</record>
</data>
</openerp>
2、页面配置部门经理
3、配置规则
<record model="ir.rule" id="purchase_order_supplier_my_rule">
<field name="name">采购订单规则</field>
<field name="model_id" ref="model_purchase_order_supplier"/>
<field name="global" eval="True"/>
<field name="domain_force">['|','|',('create_uid.parent_id','=',False),('create_uid','=',user.id),('create_uid','child_of',[g.idfor g in user.child_ids])]</field>
<field name="perm_read" eval="True"/>
<field name="perm_write" eval="True"/>
<field name="perm_unlink" eval="True"/>
<field name="perm_create" eval="True"/>
</record>
相关文章推荐
- Sqlserver中 登录用户只能看到自己拥有权限的库
- SQL Server 登录用户只能看到自己拥有权限的库
- 使SQL用户只能看到自己拥有权限的库(图文教程)
- 使SQL用户只能看到自己拥有权限的库
- 如何让SQL用户只能看到自己拥有权限的库
- 使SQL用户只能看到自己拥有权限的库(图文教程)
- Sqlserver中 登录用户只能看到自己拥有权限的库
- Sqlserver中 登录用户只能看到自己拥有权限的库
- 使SQL用户只能看到自己拥有权限的库
- Sqlserver中 登录用户只能看到自己拥有权限的库
- 创建只能看到自己有权限库的登录名和用户
- 使SQL用户只能看到自己拥有权限的库
- 让用户只能看到自己有权限的数据库
- 域用户自动映射文件服务器分配的空间(只能自己看到,其它域用户无查看权限)
- Sqlserver中 登录用户只能看到自己拥有权限的库
- 使SQL用户只能看到自己拥有权限的库
- 最近根据别人提示的一个想法,东拼西凑,终于实现了android系统中只能看到自己的系统,我称之为唯一系统。 很多企业做设备或是做产品的或是集成商 其中的一部分设备直接用android智能机。担是又不让
- ser_source 数据字典的试图,每个用户只能看到自己的user_source。
- 隐藏其它数据库,只让用户能够看到自己拥有权限的数据库
- 利用hashtable模拟实现权限验证(同map思想-->只能有一个用户名,可重复密码)以及增删查改操作