access_restriction_by_user/models/restricted_models.py

48 lines
1.9 KiB
Python

from odoo import models, api
from odoo.osv import expression
class StockWarehouse(models.Model):
_inherit = 'stock.warehouse'
@api.model
def _search(self, domain, offset=0, limit=None, order=None):
if not self.env.su:
domain = expression.AND([domain or [], [('id', 'in', self.env.user.allowed_warehouse_ids.ids)]])
return super()._search(domain, offset=offset, limit=limit, order=order)
class StockPickingType(models.Model):
_inherit = 'stock.picking.type'
@api.model
def _search(self, domain, offset=0, limit=None, order=None):
if not self.env.su:
domain = expression.AND([domain or [], [('id', 'in', self.env.user.allowed_picking_type_ids.ids)]])
return super()._search(domain, offset=offset, limit=limit, order=order)
class StockLocation(models.Model):
_inherit = 'stock.location'
@api.model
def _search(self, domain, offset=0, limit=None, order=None):
if not self.env.su:
domain = expression.AND([domain or [], [('id', 'in', self.env.user.allowed_location_ids.ids)]])
return super()._search(domain, offset=offset, limit=limit, order=order)
class MrpWorkcenter(models.Model):
_inherit = 'mrp.workcenter'
@api.model
def _search(self, domain, offset=0, limit=None, order=None):
if not self.env.su:
domain = expression.AND([domain or [], [('id', 'in', self.env.user.allowed_workcenter_ids.ids)]])
return super()._search(domain, offset=offset, limit=limit, order=order)
class ApprovalCategory(models.Model):
_inherit = 'approval.category'
@api.model
def _search(self, domain, offset=0, limit=None, order=None):
if not self.env.su:
domain = expression.AND([domain or [], [('id', 'in', self.env.user.allowed_approval_category_ids.ids)]])
return super()._search(domain, offset=offset, limit=limit, order=order)