Search code examples
securityodooodoo-10rule

Ir.rule model for diferent groups odoo


I want to make different ir.rule models for different group of users I have make the rule and work okay but dont know how to assign the group.

   <record model="ir.rule" id="pupils_rule">
        <field name="name">Tutor only view his pupils</field>
        <field name="model_id" ref="model_res_users"/>
        <field name="domain_force">[('tutor','=',user.id)]</field>
         <field name="perm_read" eval="True"/>
        <field name="perm_create" eval="False"/>
        <field name="perm_write" eval="False"/>
        <field name="perm_unlink" eval="False"/>
    </record>

My 2 security group group_tutor and group_pupil. Mymodel.acess.csv if u need something of the group.

id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
tutor_activity,Model pupil 
access,model_proyectosge_activity,group_tutor,1,0,0,0
pupil_activity,Model pupil 
access,model_proyectosge_activity,group_pupil,1,1,1,1

Solution

  • you to have to add a line like

    <field name="groups" eval="[(4, ref('XML ID OF TUTORS'))]"/>
    

    as in the fourth line in the following

    <record model="ir.rule" id="pupils_rule">
      <field name="name">Tutor only view his pupils</field>
      <field name="model_id" ref="model_res_users"/>
      <field name="groups" eval="[(4, ref('XML ID OF TUTORS'))]"/>
      <field name="domain_force">[('tutor','=',user.id)]</field>
      <field name="perm_read" eval="True"/>
      <field name="perm_create" eval="False"/>
      <field name="perm_write" eval="False"/>
      <field name="perm_unlink" eval="False"/>
    </record>