Use context to check model and field access
issue4081 review8481002
This commit is contained in:
1 parent
fc08361b88
commit
d2fc9b986b
2 files changed
+15
-23
No files matched your search
@@ -74,13 +74,11 @@ class Sale:
|
||||
'company': self.company.id,
|
||||
}
|
||||
values.update(dict(key))
|
||||
with Transaction().set_user(0, set_context=True):
|
||||
shipment = Shipment(**values)
|
||||
shipment.moves = [m for m in grouped_moves]
|
||||
shipment.save()
|
||||
shipments.append(shipment)
|
||||
with Transaction().set_user(0, set_context=True):
|
||||
Shipment.wait(shipments)
|
||||
shipment = Shipment(**values)
|
||||
shipment.moves = [m for m in grouped_moves]
|
||||
shipment.save()
|
||||
shipments.append(shipment)
|
||||
Shipment.wait(shipments)
|
||||
return shipments
|
||||
|
||||
|
||||
@@ -91,12 +89,9 @@ class SaleLine:
|
||||
result = super(SaleLine, self).get_move(shipment_type)
|
||||
if (shipment_type == 'out'
|
||||
and self.supply_on_sale):
|
||||
with Transaction().set_user(0, set_context=True):
|
||||
# TODO make it works in bunch
|
||||
line = self.__class__(self.id)
|
||||
if (line.purchase_request and line.purchase_request.customer
|
||||
and self.purchase_request_state != 'cancel'):
|
||||
return {}
|
||||
if (self.purchase_request and self.purchase_request.customer
|
||||
and self.purchase_request_state != 'cancel'):
|
||||
return {}
|
||||
return result
|
||||
|
||||
def get_purchase_request(self):
|
||||
@@ -120,14 +115,11 @@ class SaleLine:
|
||||
or not self.product):
|
||||
return []
|
||||
moves = []
|
||||
with Transaction().set_user(0, set_context=True):
|
||||
# TODO make it work in bunch
|
||||
line = self.__class__(self.id)
|
||||
if line.purchase_request and line.purchase_request.customer:
|
||||
if line.purchase_request.purchase_line:
|
||||
moves = [m
|
||||
for m in line.purchase_request.purchase_line.moves
|
||||
if m.state == 'draft' and not m.shipment]
|
||||
if self.purchase_request and self.purchase_request.customer:
|
||||
if self.purchase_request.purchase_line:
|
||||
moves = [m
|
||||
for m in self.purchase_request.purchase_line.moves
|
||||
if m.state == 'draft' and not m.shipment]
|
||||
return moves
|
||||
|
||||
@classmethod
|
||||
@@ -142,7 +134,7 @@ class SaleLine:
|
||||
added = True
|
||||
values = super(SaleLine, cls).read(ids, fields_names=fields_names)
|
||||
if 'moves' in fields_names or []:
|
||||
with Transaction().set_user(0, set_context=True):
|
||||
with Transaction().set_context(_check_access=False):
|
||||
purchase_requests = PurchaseRequest.browse(
|
||||
list(set(v['purchase_request']
|
||||
for v in values if v['purchase_request'])))
|
||||
|
||||
@@ -199,7 +199,7 @@ class ShipmentDrop(Workflow, ModelSQL, ModelView):
|
||||
for shipments, values in zip(actions, actions):
|
||||
if values.get('state', '') not in ('done', 'cancel'):
|
||||
continue
|
||||
with Transaction().set_user(0, set_context=True):
|
||||
with Transaction().set_context(_check_access=False):
|
||||
purchases = set()
|
||||
move_ids = [m.id for s in shipments for m in s.moves]
|
||||
purchase_lines = PurchaseLine.search([
|
||||
|
||||
Reference in new issue
Block a user