Ho creato una regola (ir.rule) sulla res.partner in modo tale che un utente possa visualizzare/creare/modificare/elminare solo il proprio contatto e tutti quelli che ha creato.
<record id="tm_partner_user_rule" model="ir.rule">
<field name="name">Shows only contact created by the user</field>
<field name="model_id" ref="model_res_partner"/>
<field eval="[(4,ref('test_module.jobgroup_dealer'))]" name="groups"/>
<field name="domain_force">
['|',('create_uid','=',user.id),('id','=',user.partner_id.id)]
</field>
</record>
La regola funziona bene quando si accede alla res.partner dalla voce di menu Contact (cioè quando si vuole visualizzare direttamente i dati di quel modello).
Non funziona invece quando si cerca di accedere alla res.partner da un'altra funzione, ad esempio:
Devo creare un documento di ordine la cui testata richiede dei dati che si trovano sulla res.partner, ogni volta che cerco di creare un nuovo ordine viene sollevata l'eccezione "Acess error: The requested operation cannot be completed due to security restrictions. Please contact your system administrator.
(Document type: res.partner, Operation: read)"
Com'è possibile? se posso accedere alla res.partner per visualizzarne i dati per quale motivo non posso accederci per recuperare alcune informazioni da utilizzare?
Ovviamente senza regola tutto funziona bene, ma questo è scontato e poco utile