[FIX] hr_expense, hr_holidays: default activity user
- Activate multi-company
- Create a company B
- Switch to company B
- Create an allocation request
An access error is raised.
Commit 7f775f0677 added a `sudo` call in order to prevent an access
error. However, it implies that the fallback value `self.env.user`
refers to the SUPERUSER, not the current user anymore. If the current
user is not in the same company than the SUPERUSER, the multi-company
record rules will be triggered.
The fallback is changed to an empty recordset, and selecting the current
user is done out of the method called with `sudo`.
opw-2003137
closes odoo/odoo#33804
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
This commit is contained in:
@@ -732,12 +732,12 @@ class HrExpenseSheet(models.Model):
|
||||
return self.employee_id.parent_id.user_id
|
||||
elif self.employee_id.department_id.manager_id.user_id:
|
||||
return self.employee_id.department_id.manager_id.user_id
|
||||
return self.env.user
|
||||
return self.env['res.users']
|
||||
|
||||
def activity_update(self):
|
||||
for expense_report in self.filtered(lambda hol: hol.state == 'submit'):
|
||||
self.activity_schedule(
|
||||
'hr_expense.mail_act_expense_approval',
|
||||
user_id=expense_report.sudo()._get_responsible_for_approval().id)
|
||||
user_id=expense_report.sudo()._get_responsible_for_approval().id or self.env.user.id)
|
||||
self.filtered(lambda hol: hol.state == 'approve').activity_feedback(['hr_expense.mail_act_expense_approval'])
|
||||
self.filtered(lambda hol: hol.state == 'cancel').activity_unlink(['hr_expense.mail_act_expense_approval'])
|
||||
|
||||
@@ -793,7 +793,7 @@ class HolidaysRequest(models.Model):
|
||||
return self.employee_id.parent_id.user_id
|
||||
elif self.department_id.manager_id.user_id:
|
||||
return self.department_id.manager_id.user_id
|
||||
return self.env.user
|
||||
return self.env['res.users']
|
||||
|
||||
def activity_update(self):
|
||||
to_clean, to_do = self.env['hr.leave'], self.env['hr.leave']
|
||||
@@ -803,12 +803,12 @@ class HolidaysRequest(models.Model):
|
||||
elif holiday.state == 'confirm':
|
||||
holiday.activity_schedule(
|
||||
'hr_holidays.mail_act_leave_approval',
|
||||
user_id=holiday.sudo()._get_responsible_for_approval().id)
|
||||
user_id=holiday.sudo()._get_responsible_for_approval().id or self.env.user.id)
|
||||
elif holiday.state == 'validate1':
|
||||
holiday.activity_feedback(['hr_holidays.mail_act_leave_approval'])
|
||||
holiday.activity_schedule(
|
||||
'hr_holidays.mail_act_leave_second_approval',
|
||||
user_id=holiday.sudo()._get_responsible_for_approval().id)
|
||||
user_id=holiday.sudo()._get_responsible_for_approval().id or self.env.user.id)
|
||||
elif holiday.state == 'validate':
|
||||
to_do |= holiday
|
||||
elif holiday.state == 'refuse':
|
||||
|
||||
@@ -543,7 +543,7 @@ class HolidaysAllocation(models.Model):
|
||||
return self.employee_id.parent_id.user_id
|
||||
elif self.department_id.manager_id.user_id:
|
||||
return self.department_id.manager_id.user_id
|
||||
return self.env.user
|
||||
return self.env['res.users']
|
||||
|
||||
def activity_update(self):
|
||||
to_clean, to_do = self.env['hr.leave.allocation'], self.env['hr.leave.allocation']
|
||||
@@ -553,12 +553,12 @@ class HolidaysAllocation(models.Model):
|
||||
elif allocation.state == 'confirm':
|
||||
allocation.activity_schedule(
|
||||
'hr_holidays.mail_act_leave_allocation_approval',
|
||||
user_id=allocation.sudo()._get_responsible_for_approval().id)
|
||||
user_id=allocation.sudo()._get_responsible_for_approval().id or self.env.user.id)
|
||||
elif allocation.state == 'validate1':
|
||||
allocation.activity_feedback(['hr_holidays.mail_act_leave_allocation_approval'])
|
||||
allocation.activity_schedule(
|
||||
'hr_holidays.mail_act_leave_allocation_second_approval',
|
||||
user_id=allocation.sudo()._get_responsible_for_approval().id)
|
||||
user_id=allocation.sudo()._get_responsible_for_approval().id or self.env.user.id)
|
||||
elif allocation.state == 'validate':
|
||||
to_do |= allocation
|
||||
elif allocation.state == 'refuse':
|
||||
|
||||
Reference in New Issue
Block a user