[IMP] document_page_access_group_user_role: Users compatibility

TT48786
This commit is contained in:
Víctor Martínez
2024-07-24 08:55:20 +02:00
committed by Anusha
parent 68766adea3
commit c12c8c4bef
8 changed files with 68 additions and 42 deletions

View File

@@ -1,30 +1,47 @@
# Copyright 2024 Tecnativa - Víctor Martínez
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from odoo.tests.common import users
from odoo.addons.base.tests.common import BaseCommon
from odoo.addons.document_page_access_group.tests.common import (
TestDocumentPageAccessGroupBase,
)
class TestDocumentPageAccessGroupUserRole(BaseCommon):
class TestDocumentPageAccessGroupUserRole(TestDocumentPageAccessGroupBase):
@classmethod
def setUpClass(cls):
super().setUpClass()
cls.page = cls.env["document.page"].create(
{"name": "Page 1", "type": "content"}
)
cls.group_a = cls.env["res.groups"].create({"name": "Test group A"})
cls.group_b = cls.env["res.groups"].create({"name": "Test group B"})
cls.user_role = cls.env["res.users.role"].create(
{"name": "Test role", "implied_ids": [(6, 0, [cls.group_a.id])]}
{
"name": "Test role",
"implied_ids": [(6, 0, [cls.group.id])],
"users": [(6, 0, [cls.manager_user.id])],
}
)
cls.role_page = cls.env["document.page"].create(
{
"name": "Role Page (test role)",
"type": "content",
"role_ids": [(6, 0, [cls.user_role.id])],
}
)
def test_document_page_role(self):
self.assertFalse(self.page.groups_id)
self.page.role_ids = [(4, self.user_role.id)]
self.assertIn(self.group_a, self.page.groups_id)
self.assertNotIn(self.group_b, self.page.groups_id)
self.user_role.implied_ids = [(4, self.group_b.id)]
self.assertIn(self.group_a, self.page.groups_id)
self.assertIn(self.group_b, self.page.groups_id)
self.page.role_ids = [(6, 0, [])]
self.assertNotIn(self.group_a, self.page.groups_id)
self.assertNotIn(self.group_b, self.page.groups_id)
def test_document_page_role_misc(self):
self.assertFalse(self.role_page.groups_id)
self.assertTrue(self.role_page.user_ids)
@users("test-user")
def test_document_page_role_access_01(self):
pages = self.env["document.page"].search([])
self.assertIn(self.public_page, pages)
self.assertNotIn(self.knowledge_page, pages)
self.assertIn(self.user_page, pages)
self.assertNotIn(self.role_page, pages)
@users("test-manager-user")
def test_document_page_role_access_02(self):
pages = self.env["document.page"].search([])
self.assertIn(self.public_page, pages)
self.assertIn(self.knowledge_page, pages)
self.assertNotIn(self.user_page, pages)
self.assertIn(self.role_page, pages)