72 lines
2.1 KiB
Python
72 lines
2.1 KiB
Python
from odoo.tests.common import TransactionCase, tagged
|
|
|
|
IR_CONFIG_NAME = "access_restricted.fields_view_get_uid"
|
|
|
|
|
|
@tagged("post_install", "-at_install")
|
|
class TestFieldsViewGet(TransactionCase):
|
|
def clear_config(self):
|
|
self.env["ir.config_parameter"].search([("key", "=", IR_CONFIG_NAME)]).unlink()
|
|
|
|
def clear_access(self, user):
|
|
user.write(
|
|
{
|
|
"group_ids": [
|
|
(3, self.env.ref("base.group_erp_manager").id, 0),
|
|
(3, self.env.ref("base.group_system").id, 0),
|
|
]
|
|
}
|
|
)
|
|
|
|
def add_access(self, user, group_xmlid):
|
|
user.write({"group_ids": [(4, self.env.ref(group_xmlid).id, 0)]})
|
|
|
|
def _view_form(self, user, view_xmlid):
|
|
view_id = self.env.ref(view_xmlid).id
|
|
# context = {'lang': "en_US", 'tz': "Europe/Brussels", 'uid': user.id}
|
|
self.env["res.users"].with_user(user.id).get_view(view_id=view_id)
|
|
|
|
def view_preference_form(self, user):
|
|
self._view_form(user, "base.view_users_form_simple_modif")
|
|
|
|
def view_user_form(self, user):
|
|
self._view_form(user, "base.view_users_form")
|
|
|
|
def view_form_all(self, user):
|
|
self.view_preference_form(user)
|
|
self.clear_config()
|
|
|
|
self.view_user_form(user)
|
|
self.clear_config()
|
|
|
|
def view_form_mix(self, user1, user2):
|
|
self.view_preference_form(user1)
|
|
self.view_user_form(user2)
|
|
|
|
self.view_preference_form(user1)
|
|
self.view_preference_form(user2)
|
|
|
|
self.view_form_all(user1)
|
|
self.view_user_form(user2)
|
|
|
|
def test_base(self):
|
|
admin = self.env.ref("base.user_root")
|
|
demo = self.env.ref("base.user_demo")
|
|
|
|
# test for admin
|
|
self.view_form_all(admin)
|
|
|
|
# demo doesn't have admin rights
|
|
self.clear_access(demo)
|
|
self.view_preference_form(demo)
|
|
|
|
# demo has "Access Rights"
|
|
self.add_access(demo, "base.group_erp_manager")
|
|
self.view_form_all(demo)
|
|
|
|
# demo has "Settings"
|
|
self.add_access(demo, "base.group_system")
|
|
self.view_form_all(demo)
|
|
|
|
self.view_form_mix(admin, demo)
|