mirror of
https://github.com/OCA/knowledge.git
synced 2025-12-23 13:52:13 -06:00
[IMP] document_page_access_group_user_role: Users compatibility
TT48786
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user