您的位置:首页 > 编程语言 > Python开发

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)配置团队及团队成员



 



  
采购团队:谷岫珊
李爽 
李中朋
销售团队:
李爽
 
  
(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>
 
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  odoo openerp python
相关文章推荐