我开发了一个自定义模块,以将创建新雇员或修改现有雇员的权利限制为属于“雇员/雇员”组的雇员,但是我注意到即使我的雇员具有“雇员/经理”的权利他变得无法创建或编辑员工。我该如何解决这个问题?有任何帮助的想法吗? 这是我的代码:
hr_employee_view.xml
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="view_hr_employee_form_remove_edit" model="ir.ui.view">
<field name="name">view.hr.employee.form.remove.edit</field>
<field name="model">hr.employee</field>
<field name="inherit_id" ref="hr.view_employee_form"/>
<field name="groups_id" eval="[(4,ref('base.group_user'))]"/>
<field name="arch" type="xml">
<xpath expr="//form" position="attributes">
<attribute name="edit">false</attribute>
<attribute name="create">false</attribute>
</xpath>
</field>
</record>
<record id="view_hr_employee_tree_remove_edit_create" model="ir.ui.view">
<field name="name">view.hr.employee.tree.remove.edit.create</field>
<field name="model">hr.employee</field>
<field name="inherit_id" ref="hr.view_employee_tree"/>
<field name="groups_id" eval="[(6, 0, [ref('base.group_user')])]"/>
<field name="arch" type="xml">
<xpath expr="//tree" position="attributes">
<attribute name="edit">false</attribute>
<attribute name="create">false</attribute>
</xpath>
</field>
</record>
<record id="view_hr_employee_kanban_remove_edit_create" model="ir.ui.view">
<field name="name">view.hr.employee.kanban.remove.edit.create</field>
<field name="model">hr.employee</field>
<field name="inherit_id" ref="hr.hr_kanban_view_employees"/>
<field name="groups_id" eval="[(6, 0, [ref('base.group_user')])]"/>
<field name="arch" type="xml">
<xpath expr="//kanban" position="attributes">
<attribute name="edit">false</attribute>
<attribute name="create">false</attribute>
</xpath>
</field>
</record>
</odoo>
答案 0 :(得分:1)
您的技术工作在用户没有该组但 您知道每个用户都具有该组,因此无法将其删除。
您应该使用Odoo安全性做到这一点。
默认情况下一件事不属于官员的用户他们无权创建
access_hr_employee_system_user,hr.employee system user,model_hr_employee,base.group_user,1,0,0,0
access_hr_employee_user,hr.employee user,model_hr_employee,group_hr_user,1,1,1,1
因此,如果您是说只有经理可以创建员工,则应该这样做
更改官员组的访问权限(以ID hr.access_hr_employee_user
为目标)
hr.access_hr_employee_user,hr.employee user,model_hr_employee,group_hr_user,1,0,0,0
授予管理员完全访问权限
access_hr_employee_manger,hr.employee manager,model_hr_employee,hr.group_hr_manager,1,1,1,1
这就是为什么只有经理才能创建或更新员工的原因。
答案 1 :(得分:1)
将此规则添加到您的模块中,它将仅对hr_user组而不是hr_manager组隐藏“创建”按钮,您应该创建新文件security.xml,在此可以忽略此规则
<record id="rule_security_groups_hr_user" model="ir.rule">
<field name="name">User can't edit or create employees.</field>
<field name="model_id" ref="hr.model_hr_employee"/>
<field name="groups" eval="[(4, ref('hr.group_hr_user'))]"/>
<field name="perm_read" eval="1"/>
<field name="perm_create" eval="0"/>
<field name="perm_write" eval="0"/>
<field name="perm_unlink" eval="0" />
<field name="domain_force">[('user_id','=',user.id)]</field>
</record>
希望这对您有所帮助。祝你好运
答案 2 :(得分:0)
您可以从XML隐藏按钮创建/编辑。如下所示:
array_push()
希望这对您有所帮助。谢谢。