Files
odoo_source/addons/website_blog/tests/common.py
T
std-odoo 38b2c9e8f8 [FIX] portal: fix attachments upload as portal
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>
2020-05-25 09:15:10 +00:00

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,
})