我在学生module.According上工作,要求应用程序的一个超级用户拥有访问它的所有权限,而作为另一个用户(教师)只查看基于分类的所有学生,例如O级别的学生,我如何做到这一点?
<record id="student_view_form_status" model="ir.ui.view">
<field name="name">Status</field>
<field name="model">student.registration</field>
<field name="type">tree</field>
<field name="priority" eval="10" />
<field name="arch" type="xml">
<tree string="Status">
<field name="registered_date" />
<field name="status" />
<field name="student_name" />
</tree>
</field>
</record>
<record id="patient_visits_action_form_status_view" model="ir.actions.act_window">
<field name="name">Status</field>
<field name="res_model">student.registration</field>
<field name="view_type">tree</field>
<field name="view_mode">tree</field>
<field name="view_id" ref="student_view_form_status" />
</record>发布于 2017-03-02 20:50:44
如果我理解正确的话,您希望特定用户只能看到定义级别的条目(学生)。让我把它抽象一点:一个条目有2个或更多(x,y,...)状态和用户a(超级用户)可以看到所有条目,而用户b(教师)只能看到状态x的条目。
在Odoo中,您将需要用户组(res.groups)、访问权限(ir.model.access)和访问规则(ir.rule)来完成此要求。
你会在Odoo的sale模块中找到一个非常好的例子。该模块中有3个用户组:请参阅自己的销售线索,请参阅所有销售线索和经理。销售订单(sale.order)可以被所有销售用户读取(所有用户的访问权限是读取、创建和写入)。但也定义了访问规则。销售订单有一个名为user_id的字段,在销售上下文中,它是订单的销售员。规则被定义为"See own“组的用户只能看到他们所在的位置的订单,或者没有人是销售员。下一个“更高”组“查看所有销售线索”正在通过其自己的访问规则来推翻此约束,该规则授予对所有销售订单的读取访问权限。
您可以使用相同的实现来满足您的需求。有关更多信息,请查看sale模块,当然还有Doc
https://stackoverflow.com/questions/42548880
复制相似问题