Bugs ==== On e-commerce, the portal user is not able to upload attachment with his comment, under a product. On website blog, the portal user is not able to upload attachment with his comment, in the discussion of the blog. And, in `website_crm_partner_assign`, portal user is not able to upload attachment with his comment, under the lead/opp. Issue ===== In the create method of the mail message, we check is the user can read the attachment. If he can't, we raise an error. But, the method that make the verification doesn't care about the access token. So, when a portal user want to upload an attachment on a "public" record (without a token on the record to sudoed it) the error is raised. The portal user give an token for the attachment, so he should be able to attach it to the message. This verification is done with `_portal_post_check_attachments` so we can sudo write the attachment after the creation of the mail message to bypass the verification. Task-2214795 closes odoo/odoo#51772 X-original-commit: d59f8f62dbc7771fee51c3593f89f9b6832bb7ec Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
47 lines
1.8 KiB
Python
47 lines
1.8 KiB
Python
# -*- coding: utf-8 -*-
|
|
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
|
|
from odoo.tests import common
|
|
|
|
|
|
class TestWebsiteBlogCommon(common.TransactionCase):
|
|
def setUp(self):
|
|
super(TestWebsiteBlogCommon, self).setUp()
|
|
|
|
Users = self.env['res.users']
|
|
|
|
group_blog_manager_id = self.ref('website.group_website_designer')
|
|
group_employee_id = self.ref('base.group_user')
|
|
group_public_id = self.ref('base.group_public')
|
|
|
|
self.user_employee = Users.with_context({'no_reset_password': True}).create({
|
|
'name': 'Armande Employee',
|
|
'login': 'armande',
|
|
'email': 'armande.employee@example.com',
|
|
'notification_type': 'inbox',
|
|
'groups_id': [(6, 0, [group_employee_id])]
|
|
})
|
|
self.user_blogmanager = Users.with_context({'no_reset_password': True}).create({
|
|
'name': 'Bastien BlogManager',
|
|
'login': 'bastien',
|
|
'email': 'bastien.blogmanager@example.com',
|
|
'notification_type': 'inbox',
|
|
'groups_id': [(6, 0, [group_blog_manager_id, group_employee_id])]
|
|
})
|
|
self.user_public = Users.with_context({'no_reset_password': True}).create({
|
|
'name': 'Cedric Public',
|
|
'login': 'cedric',
|
|
'email': 'cedric.public@example.com',
|
|
'notification_type': 'inbox',
|
|
'groups_id': [(6, 0, [group_public_id])]
|
|
})
|
|
|
|
self.test_blog = self.env['blog.blog'].with_user(self.user_blogmanager).create({
|
|
'name': 'New Blog',
|
|
})
|
|
self.test_blog_post = self.env['blog.post'].with_user(self.user_blogmanager).create({
|
|
'name': 'New Post',
|
|
'blog_id': self.test_blog.id,
|
|
'website_published': True,
|
|
})
|