This question has been flagged
8 Replies
3456 Views

I'm using odoo v 11 and i want that the approve action for example in leaves module to be done only with the manager of the employee,for example i have employee "x" with a manager "z" and i have another employee "y" with a manager "w" . i want that the manager "w" could only approve the request of his employee "y". But i notice that if you have the right of manager you can approve to anyone even though you are not his manager.Is it a solution for that ?

Avatar
Discard
Author Best Answer

i found the solution i should create a new record rule with the domain filter ['|',('employee_id.user_id','=',user.id),('employee_id.parent_id.user_id','=',user.id)] 

Avatar
Discard
Best Answer

Hi,

If this is the situation what you can do is that, either add a record rule for the leaves such a way that the managers only see his employee leave requests or you can override the action of the approval button and check whether the approving user is the manager of the leave requested employees manager or not and raise the warning message.


Thanks

Avatar
Discard
Author

Thanks, but can i create a record rule which allows managers to see their own employees only

Yes as described in answer, either create record rule or override the button action and make changes

Author

What should i write in the domain filter ?

'employee_id.parent_id.user_id', '=', user.id

Best Answer

Hi Dhouha,


As Niyas said you can create a new record rule and disable the current rule for Leaves/Manager for hr.leave object. I guess "[('department_id.member_ids.user_id', '=', user.id)]" domain will work fine. You can also modify the action_approve() method to check for the current user's department and raise an error. I will prefer the first method since department heads should not be able to see the leaves of employees who are not in their department.


Mihran

Avatar
Discard

Check this customization tips: https://goo.gl/8HgnCF