我有一个字段,我想让一个组中的所有用户只读它,比如base.group_userA。任何其他用户都可以编辑和保存该字段。我如何在openerp中做到这一点?我已经为所有用户设置了所有CRUD访问权限。
'WO_NOTES' : fields.text("Description"),
in xml
<field name="WO_NOTES"/>
答案 0 :(得分:3)
我遇到了同样的问题,只是我想只向一个组中的用户显示字段。我通过继承视图并对特定组进行了更改来解决这个问题。
在你的情况下它应该是这样的:
<?xml version="1.0"?>
<openerp>
<data>
<record model="ir.ui.view" id="view_id">
<field name="name">view.id</field>
<field name="model">your.model</field>
<field name="inherit_id" ref="id_of_inherited_view"/>
<field name="groups_id" eval="[(6, 0, [ref('base.group_userA') ])]"/>
<field name="arch" type="xml">
<field name="WO_NOTES" position="attributes">
<attribute name="readonly">1</attribute>
</field>
</field>
</record>
</data>
</openerp>
希望这有帮助!
---一点点编辑,以澄清我的答案---
我假设你有表单视图,对所有用户都很好(WO_NOTES可以编辑给所有用户)。使用此继承,更改将仅发生在属于base.group_userA
的用户,将其属性更改为只读(仅限此字段,仅限此组中的用户)。
<field name="WO_NOTES" position="attributes"> <attribute name="readonly">1</attribute></field>
部分将在父视图中找到该字段并将其设为只读。 <field name="groups_id" eval="[(6, 0, [ref('base.group_userA') ])]"/>
将此更改限制为指定的组。