odoo 17 限制用户查看他的产品

问题描述 投票:0回答:1
from odoo import api, fields, models

类 ResUser(models.Model): _inherit = 'res.users'

dealer_category_ids = fields.Many2many(
    string="Dealer Category Tags",
    comodel_name='rgb.dealer.category',
    relation='user_tag_rgb_dealer_category_rel',
)

类 ProductTemplate(models.Model): _inherit = '产品.模板'

dealer_category_ids = fields.Many2many(
    string="Dealer Category Tags",
    comodel_name='rgb.dealer.category',
    relation='product_tag_rgb_dealer_category_rel',
)

类 ResPartner(models.Model): _inherit = 'res.partner'

dealer_category_ids = fields.Many2many(
    string="Dealer Category Tags",
    comodel_name='rgb.dealer.category',
    relation='partner_tag_rgb_dealer_category_rel',
)

在此代码中,我想限制用户通过相互的 Dealer_category_ids 标签查看他的合作伙伴和产品。 因此让用户看到具有用户所购买的任何 Dealer_category_id 的产品 或者用户具有在产品中获取的任何dealer_category_id, 与合作伙伴类似产品相同

permissions odoo restriction
1个回答
0
投票
<record id="record_rule_product_access" model="ir.rule">
        <field name="name">Product Access Rule Allow</field>
        <field name="model_id" ref="product.model_product_template"/>
        <field name="groups" eval="[(4, ref('group_allow_all_products'))]"/>
        <field name="domain_force">[('id', '>', 0)]</field>
    </record>

    <record id="record_rule_product_access_restrict" model="ir.rule">
        <field name="name">Product Access Rule Restrict</field>
        <field name="model_id" ref="product.model_product_template"/>
        <field name="groups" eval="[(4, ref('base.group_user'))]"/>
        <field name="domain_force">[('dealer_category_ids', 'in', user.dealer_category_ids.ids)]</field>
    </record>


    <record id="record_rule_partner_access" model="ir.rule">
        <field name="name">Partner Access Rule Allow</field>
        <field name="model_id" ref="base.model_res_partner"/>
        <field name="groups" eval="[(4, ref('group_allow_all_products'))]"/>
        <field name="domain_force">[('id', '>', 0)]</field>
    </record>

    <record id="record_rule_partner_access_restrict" model="ir.rule">
        <field name="name">Partner Access Rule Restrict</field>
        <field name="model_id" ref="base.model_res_partner"/>
        <field name="groups" eval="[(4, ref('base.group_user'))]"/>
        <field name="domain_force">[('dealer_category_ids', 'in', user.dealer_category_ids.ids)]</field>
    </record>

完成这些记录规则

© www.soinside.com 2019 - 2024. All rights reserved.