summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Trigaux <mat@odoo.com>2017-11-09 14:24:52 +0100
committerMartin Trigaux <mat@odoo.com>2017-11-09 15:51:14 +0100
commitf8540501aca60feea8108691b7ad5a9afa030aa0 (patch)
tree48d6b36d68d487478edf3ddb2acf44b6d105ab44
parenta63ecee47ac271b1f0a23528d9d5eab7f63ae528 (diff)
[FIX] hr_expense: verify the constrain server side too
The groups were set only on the view which does not prevent abuses. The fact that users can bypass the groups on the view is not critical as the changes are logged but this should be improved nevertheless. In master, proper record rules should be set. Closes #20427
-rw-r--r--addons/hr_expense/models/hr_expense.py4
1 files changed, 4 insertions, 0 deletions
diff --git a/addons/hr_expense/models/hr_expense.py b/addons/hr_expense/models/hr_expense.py
index f4cb1a69c9d..61a45a48154 100644
--- a/addons/hr_expense/models/hr_expense.py
+++ b/addons/hr_expense/models/hr_expense.py
@@ -524,6 +524,8 @@ class HrExpenseSheet(models.Model):
@api.multi
def refuse_expenses(self, reason):
+ if not self.user_has_groups('hr_expense.group_hr_expense_user'):
+ raise UserError(_("Only HR Officers can refuse expenses"))
self.write({'state': 'cancel'})
for sheet in self:
body = (_("Your Expense %s has been refused.<br/><ul class=o_timeline_tracking_value_list><li>Reason<span> : </span><span class=o_timeline_tracking_value>%s</span></li></ul>") % (sheet.name, reason))
@@ -531,6 +533,8 @@ class HrExpenseSheet(models.Model):
@api.multi
def approve_expense_sheets(self):
+ if not self.user_has_groups('hr_expense.group_hr_expense_user'):
+ raise UserError(_("Only HR Officers can approve expenses"))
self.write({'state': 'approve', 'responsible_id': self.env.user.id})
@api.multi