I have this issue in odoo10(not testing in previous version).
I have a model, and the record rule (only one record rule) for this model is without writing righ, xml definition as following :
<record id="todo_task_user_rule" model="ir.rule">
<field name="name">rule1</field>
<field name="model_id" ref="model_todo_task"/>
<field name="domain_force">[('create_uid','!=',user.id)]</field>
<field name="groups" eval="[(4,ref('base.group_user'))]"/>
<field eval="0" name="perm_unlink"/>
<field eval="0" name="perm_write"/>
<field eval="1" name="perm_read"/>
<field eval="1" name="perm_create"/>
</record>
Under such condition, I am able to modify the record which meeting the domain.
To avoid this, I have to add one anther record rule (different domain and perm_write=True )to make previous record un-writable, which is as following:
<record id="todo_task_user_rule" model="ir.rule">
<field name="name">rule2</field>
<field name="model_id" ref="model_todo_task"/>
<field name="domain_force">[('create_uid','=',user.id)]</field>
<field name="groups" eval="[(4,ref('base.group_user'))]"/>
<field eval="0" name="perm_unlink"/>
<field eval="1" name="perm_write"/>
<field eval="1" name="perm_read"/>
<field eval="1" name="perm_create"/>
</record>
Is this behavior as per design?If so, I have to add at least one another perm_xxxx=True rule for relevant rule which is perm_xxxx=False.
This really doesn't make sense. Do i misunderstand something ???