odoo13 权限仅查看自己

有两种方式可以实现:客户仅查看自己创建的数据

  • 直接用权限组

用记录规则(ir.rule)来筛选(domain_force)

        
            客户资料查询(仅自己)
            
        

        
            客户资料查询规则(仅自己)
            
            [('create_uid','in',[user.id,False])]
            
        

注意:如果记录规则无权限组,它会作用于全局,也就是不针对某一个权限组。

  • 用python代码来
    用 _search()函数
    不用写规则,直接来判断是否选择权限组,如果有,进行筛选。
from odoo.osv import expression


    @api.model
    def _search(self, args, offset=0, limit=None, order=None, count=False, access_rights_uid=None):
        if self.user_has_groups('production_management.wg_sale_partner_data_query_self'):
            args = expression.AND([[('create_uid', 'in', [self.env.user.id,False])], list(args)])

        return super(SupplierManager, self)._search(args, offset=offset, limit=limit, order=order,
                                                count=count, access_rights_uid=access_rights_uid)

此两种方法都可实现。本人亲测。

你可能感兴趣的:(odoo13 权限仅查看自己)