Skip to Content
Menu
This question has been flagged
2 Replies
8727 Views

Hi masters.


I have a pdf in a many2many field relate to ir.attachment.

But when a common user try to acces the module, the error appears.

How can I avoid this without adding the user to the admin group?


Thanks in advance!

Avatar
Discard
Author

Theres an issue about this:
https://github.com/odoo/odoo/pull/82111
This is the cause:
"Attachments that are uploaded on a record that isn't saved yet are
created with res_id set to 0. In the case of attachments linked through
a m2m rather than the usual (res_model, res_id), it means they may not
be readable afer the creation of the record, except by their creator.

Re-attaching them to the mailing / template at the end of the create()
call fixes the ownership."

I solved adding this in my custom module:
" @api.model
def create(self, vals):
templates = super(RoomsReservation,self).create(vals)
# fix attachment ownership
for template in templates:
if template.attachment_ids:
template.attachment_ids.write({'res_model': self._name, 'res_id': template.id})
return templates"

Author Best Answer

Theres an issue about this:
https://github.com/odoo/odoo/pull/82111
This is the cause:
"Attachments that are uploaded on a record that isn't saved yet are
created with res_id set to 0. In the case of attachments linked through
a m2m rather than the usual (res_model, res_id), it means they may not
be readable afer the creation of the record, except by their creator.

Re-attaching them to the mailing / template at the end of the create()
call fixes the ownership."

I solved adding this in my custom module:
" @api.model
def create(self, vals):
templates = super(RoomsReservation,self).create(vals)
# fix attachment ownership
for template in templates:
if template.attachment_ids:
template.attachment_ids.write({'res_model': self._name, 'res_id': template.id})
return templates"

Avatar
Discard
Best Answer

I have same issue. I had extend model ir.attachment. And i have an issue, when i try to enter in model which connected many2many to new attachment model. I check solution above, and it works for new records, but it doesn't when i updating records. Can you help me with this? I try to do same on write function of parent model, but it doesn't work either.

like this

`

def write(self, vals):
​for record in self:
​print(record.document_ids)
​record.document_ids.write({'res_model': self._name, 'res_id': record.id})

​return super(Project, self).write(vals)
Avatar
Discard
Related Posts Replies Views Activity
1
Jul 24
3256
1
Apr 25
3825
0
Dec 23
709
1
Feb 23
1756
0
Feb 23
157