1

我在 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>  
4

2 回答 2

0

作为记录,如果您可以提供模型的详细信息,尤其是模型的详细信息,则回答起来会更容易mat.mgmt。也许这就是为什么还没有答案的原因。

假设您在mat.mgmtproject.projectnamed之间有一个 many2one 关系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是应用过滤的模型。您不想过滤项目,但mat.mgmt如果我正确理解您的问题。

于 2013-08-21T09:58:05.623 回答
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>

试试上面的代码:

manager组应该继承自用户组

例子:

<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>

解释:

用户可以创建记录,也可以只查看他的记录

但经理可以查看所有用户的记录,也可以创建和查看自己的记录

于 2016-05-05T12:53:08.973 回答