summaryrefslogtreecommitdiff
path: root/addons
diff options
context:
space:
mode:
authorAdrien Peiffer (ACSONE) <adrien.peiffer@acsone.eu>2017-04-18 14:34:57 +0200
committerMartin Trigaux <mat@odoo.com>2017-05-08 15:13:58 +0200
commit3ea3be637406905e2d05aff6b753448b6be2a6b1 (patch)
tree17daa804822119d61be20088914bb67ee43ad605 /addons
parente80238042c9d93d492ea8b06b0041aced0d81dcd (diff)
[IMP] hr_holidays: move security check in separated method.
Closes #16792 Closes #16491 opw-740246
Diffstat (limited to 'addons')
-rw-r--r--addons/hr_holidays/models/hr_holidays.py22
1 files changed, 17 insertions, 5 deletions
diff --git a/addons/hr_holidays/models/hr_holidays.py b/addons/hr_holidays/models/hr_holidays.py
index eff33ce5af3..ca6e4fa9362 100644
--- a/addons/hr_holidays/models/hr_holidays.py
+++ b/addons/hr_holidays/models/hr_holidays.py
@@ -420,11 +420,15 @@ class Holidays(models.Model):
return self.write({'state': 'confirm'})
@api.multi
+ def _check_security_action_approve(self):
+ if not self.env.user.has_group('hr_holidays.group_hr_holidays_user'):
+ raise UserError(_('Only an HR Officer or Manager can approve leave requests.'))
+
+ @api.multi
def action_approve(self):
# if double_validation: this method is the first approval approval
# if not double_validation: this method calls action_validate() below
- if not self.env.user.has_group('hr_holidays.group_hr_holidays_user'):
- raise UserError(_('Only an HR Officer or Manager can approve leave requests.'))
+ self._check_security_action_approve()
current_employee = self.env['hr.employee'].search([('user_id', '=', self.env.uid)], limit=1)
for holiday in self:
@@ -454,10 +458,14 @@ class Holidays(models.Model):
return values
@api.multi
- def action_validate(self):
+ def _check_security_action_validate(self):
if not self.env.user.has_group('hr_holidays.group_hr_holidays_user'):
raise UserError(_('Only an HR Officer or Manager can approve leave requests.'))
+ @api.multi
+ def action_validate(self):
+ self._check_security_action_validate()
+
current_employee = self.env['hr.employee'].search([('user_id', '=', self.env.uid)], limit=1)
for holiday in self:
if holiday.state not in ['confirm', 'validate1']:
@@ -516,8 +524,7 @@ class Holidays(models.Model):
@api.multi
def action_refuse(self):
- if not self.env.user.has_group('hr_holidays.group_hr_holidays_user'):
- raise UserError(_('Only an HR Officer or Manager can refuse leave requests.'))
+ self._check_security_action_refuse()
current_employee = self.env['hr.employee'].search([('user_id', '=', self.env.uid)], limit=1)
for holiday in self:
@@ -536,6 +543,11 @@ class Holidays(models.Model):
self._remove_resource_leave()
return True
+ @api.multi
+ def _check_security_action_refuse(self):
+ if not self.env.user.has_group('hr_holidays.group_hr_holidays_user'):
+ raise UserError(_('Only an HR Officer or Manager can refuse leave requests.'))
+
####################################################
# Messaging methods
####################################################