我在openerp中创建了一个新模块,其中包含与每个项目相关的消费详细信息。 我为我的模块(用户,经理)创建了两个用户组。用户可以创建项目的消费细节,他只能看到他创建的消费细节。 我像这样给予许可
<record id="property_rule_mat_mgmt_user" model="ir.rule">
<field name="name">Material Manage Rule</field>
<field model="ir.model" name="model_id" ref="model_mat_mgmt"/>
<field name="domain_force">[('create_uid','=',user.id)]</field>
</record>
工作正常
同样,如果我指定一个用户作为我的模块的经理,他可以看到项目的所有消费细节,他是其中的成员或经理。如何编写规则,我尝试了不同的方法,但找不到合适的规则。
这是我尝试过的规则之一
<record id="property_rule_mat_mgmt_manager" model="ir.rule">
<field name="name">Material Manage manager Rule</field>
<field model="ir.model" name="model_id" ref="project.model_project_project"/>
<field name="domain_force">['|',('user_id','=',False),('user_id','=',user.id)]</field>
</record>
答案 0 :(得分:0)
对于记录,如果您可以提供模型的详细信息,尤其是mat.mgmt
模型的详细信息,则会更容易回答。也许这就是为什么还没有答案。
假设您在名为mat.mgmt
的{{1}}和project.project
之间存在多重关系,您可以使用以下内容:
project_id
请注意,模型仍为<record id="property_rule_mat_mgmt_manager" model="ir.rule">
<field name="name">Material Manage manager Rule</field>
<field model="ir.model" name="model_id" ref="model_mat_mgmt"/>
<field name="domain_force">['|',('project_id.user_id','=',False),('project_id.user_id','=',user.id)]</field>
</record>
,因为这是应用过滤的模型。如果我正确理解你的问题,你不想过滤项目,而是model_mat_mgmt
。
答案 1 :(得分:0)
<record id="user_record_rule_id" model="ir.rule">
<field name="name">Record Rule Name</field>
<field model="ir.model" name="model_id" ref="model_my_model_name"/>
<field name="domain_force">[('create_uid', '=', user.id)]</field>
<field name="perm_read" eval="True"/>
<field name="perm_write" eval="True"/>
<field name="perm_create" eval="True"/>
<field name="perm_unlink" eval="True"/>
<field name="groups" eval="[(4,ref('group_user'))]"/>
</record>
<record id="manager_record_rule_id" model="ir.rule">
<field name="name">Record Rule Name</field>
<field model="ir.model" name="model_id" ref="model_my_model_name"/>
<field name="domain_force">[]</field>
<field name="perm_read" eval="True"/>
<field name="perm_write" eval="True"/>
<field name="perm_create" eval="True"/>
<field name="perm_unlink" eval="True"/>
<field name="groups" eval="[(4,ref('group_manager'))]"/>
</record>
尝试以上代码:
经理组应继承自用户组
示例:
<record id="group_user" model="res.groups">
<field name="name">User</field>
<field name="category_id" ref="module_category_name"/>
</record>
<record id="group_manager" model="res.groups">
<field name="name">Manager</field>
<field name="implied_ids" eval="[(4, ref('group_user'))]"/>
<field name="category_id" ref="module_exit_category"/>
<field name="users" eval="[(4, ref('base.user_root'))]"/>
</record>
说明:
用户可以创建记录,也可以只查看他的记录
但是经理可以看到所有用户的记录以及他可以创建的&amp;查看他自己的记录