代码之家  ›  专栏  ›  技术社区  ›  Dhouha

如何限制(拒绝)某些用户的产品创建?

  •  0
  • Dhouha  · 技术社区  · 6 年前

    enter image description here 我使用的是Odoo 9,我想拒绝为某些用户创建产品,例如,对于销售人员,我希望他们只能访问已经创建的产品。他们不得有权创造新产品。我怎么做?有什么想法吗?

    class product_product(models.Model):
    _inherit = "product.product"
    
    @api.model
    def create(self, vals):
    if self.env.user.has_group('yor_module.your_group'):
        raise Warning(
            _('Sorry, you are not allowed to create new products.'),
        )
    else:
        return super(product_product, self).create(vals)
    

     <?xml version="1.0" encoding="utf-8"?>
    <openerp>
    <data>
        <record model="res.groups" id="your_group">
            <field name="name">Group of users who cannot create new products</field>
        </record>
    </data>
    

    1 回复  |  直到 6 年前
        1
  •  0
  •   forvas    6 年前

    这个功能应该通过规则来实现,但在我看来,它们是不可预测的,在这种情况下,如果您想要的话,它们不会给您更多的灵活性来限制您的条件。我要做的是:

    首先在模块中的XML文件中创建一个新的安全组(不要忘记在 __manifest__.py / __openerp__.py ):

    <record model="res.groups" id="your_group">
        <field name="name">Group of users who cannot create new products</field>
    </record>
    

    然后覆盖 product.product 奥姆 create

    @api.model
    def create(self, vals):
        if self.env.user.has_group('your_module.your_group'):
            raise Warning(
                _('Sorry, you are not allowed to create new products.'),
            )
        else:
            return super(ProductProduct, self).create(vals)
    

    还是在家里做 product.template

    如果您希望该组的用户不写入或删除产品,也可以从这些ORM方法继承,并向它们添加类似的条件。

    您应该通过界面手动将无法创建产品的用户添加到新组中,或者通过创建组时使用的XML(通过参数)添加他们(甚至整个用户组) users -限制特定用户-或 implied_ids