我正在尝试修改“请假管理”模块下的批准请假访问控制列表。
我需要让每位员工的经理只能访问“请求许可”菜单。
EA。如果公司在销售/营销部门有10名员工,在IT部门有5名员工。我需要销售经理仅访问他的10个员工休假请求,而不能访问不受其授权的公司其他员工。
为此,我将Leaves官员的记录规则域定义从[(1,'=',1)]
修改为[('employee_id.parent_id,'=',user.id)]
但它不起作用。如何解决?
答案 0 :(得分:1)
在你的情况下,基本上你完全通过了错误的域名来记录规则。
您之前使用的域名
[(1,' =',1)] => 访问该模型的所有模型记录
[(' employee_id.parent_id,' =',user.id)] => 仅作为当前用户员工访问Manager parent_id
但是,您只能与经理用户访问,才能访问其相关用户。
因此您必须在记录规则中添加以下域名:
[' |'(' employee_id.user_id',' =',user.id),(' employee_id.parent_id。 user_id',' =',user.id)]
基本上,经理自己作为公司的员工,员工必须与相关用户联系。
首先需要了解以下关系:
<强> 1。 employee_id:
表示与一名员工相关的每个假期。
<强> 2。 parent_id:
表示与hr.holidays模型w [(&#39; employee_id.parent_id,&#39; =&#39;,user.id)的一位经理相关的每位员工]特定的model.hich被称为请假申请
第3。 user_id:
如果您想访问特定员工的登录信息,那么您必须为每个员工表单设置相关用户。标签为“相关用户”。
<强> 4。用户:
这表示全局用户名表示您当前登录的当前用户。
5.id:
表示每条记录的唯一ID
在您的情况下,域名将如何运作?
首先它将检查当前登录的用户是否为附加的当前离职员工相关用户。 然后找到与同一名员工相关的用户ID与相同的经理。
这意味着它将为两个域执行SQL语句的OR操作。
我希望我的回答对您有所帮助:)。