mirror of
https://github.com/bringout/oca-technical.git
synced 2026-04-18 12:52:05 +02:00
Initial commit: OCA Technical packages (595 packages)
This commit is contained in:
commit
2cc02aac6e
24950 changed files with 2318079 additions and 0 deletions
|
|
@ -0,0 +1,4 @@
|
|||
# Copyright 2023 Tecnativa - Víctor Martínez
|
||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||
|
||||
from . import test_maintenance_security
|
||||
|
|
@ -0,0 +1,71 @@
|
|||
# Copyright 2023 Tecnativa - Víctor Martínez
|
||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||
|
||||
from odoo.tests import common, new_test_user
|
||||
from odoo.tests.common import users
|
||||
|
||||
from odoo.addons.base.tests.common import DISABLED_MAIL_CONTEXT
|
||||
|
||||
|
||||
class TestMaintenanceSecurity(common.TransactionCase):
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
super().setUpClass()
|
||||
cls.env = cls.env(context=dict(cls.env.context, **DISABLED_MAIL_CONTEXT))
|
||||
cls.user = new_test_user(
|
||||
cls.env,
|
||||
login="test-basic-user",
|
||||
)
|
||||
cls.manager = new_test_user(
|
||||
cls.env,
|
||||
login="test-maintenance-user",
|
||||
groups="maintenance.group_equipment_manager",
|
||||
)
|
||||
cls.category = cls.env["maintenance.equipment.category"].create(
|
||||
{"name": "Test category"}
|
||||
)
|
||||
cls.equipment = cls.env["maintenance.equipment"].create(
|
||||
{
|
||||
"name": "Test equipment",
|
||||
"category_id": cls.category.id,
|
||||
}
|
||||
)
|
||||
cls.maintenance_menus = [
|
||||
cls.env.ref("maintenance.menu_maintenance_title"),
|
||||
cls.env.ref("maintenance.menu_m_dashboard"),
|
||||
cls.env.ref("maintenance.menu_m_request"),
|
||||
cls.env.ref("maintenance.menu_m_request_form"),
|
||||
cls.env.ref("maintenance.menu_m_request_calendar"),
|
||||
cls.env.ref("maintenance.menu_equipment_form"),
|
||||
]
|
||||
|
||||
def test_maintenance_equipment_full(self):
|
||||
mt_mat_assign = self.env.ref("maintenance.mt_mat_assign")
|
||||
# Change to manager (with mt_mat_assign subtype)
|
||||
self.equipment.write({"owner_user_id": self.manager.id})
|
||||
self.assertNotIn(
|
||||
self.user.partner_id,
|
||||
self.equipment.message_follower_ids.mapped("partner_id"),
|
||||
)
|
||||
follower = self.equipment.message_follower_ids.filtered(
|
||||
lambda x: x.partner_id == self.manager.partner_id
|
||||
)
|
||||
self.assertIn(mt_mat_assign, follower.subtype_ids)
|
||||
# Change to user (without mt_mat_assign subtype)
|
||||
self.equipment.write({"owner_user_id": self.user.id})
|
||||
follower = self.equipment.message_follower_ids.filtered(
|
||||
lambda x: x.partner_id == self.user.partner_id
|
||||
)
|
||||
self.assertNotIn(mt_mat_assign, follower.subtype_ids)
|
||||
|
||||
@users("test-basic-user")
|
||||
def test_ir_ui_menu_user(self):
|
||||
items = self.env["ir.ui.menu"]._visible_menu_ids()
|
||||
for maintenance_menu in self.maintenance_menus:
|
||||
self.assertFalse(maintenance_menu.id in items)
|
||||
|
||||
@users("test-maintenance-user")
|
||||
def test_ir_ui_menu_manager(self):
|
||||
items = self.env["ir.ui.menu"]._visible_menu_ids()
|
||||
for maintenance_menu in self.maintenance_menus:
|
||||
self.assertTrue(maintenance_menu.id in items)
|
||||
Loading…
Add table
Add a link
Reference in a new issue