From 3d0cc2d6d2dbd567cfaa93de4cb90787d0c07c9e Mon Sep 17 00:00:00 2001 From: Jeremy Kersten Date: Mon, 30 Jan 2017 16:08:50 +0100 Subject: [PATCH] [FIX] website_portal: allow non employee user to log in to the portal Commit #3649b7f359b640635cbe0bc4f161884ba64c2318 remove sudo when loading the menu. Add test to check that homepage portal can be loaded with user portal. That's the first test using portal user, it don't really test the portal features, but just that the loading of portal homeapge works... --- .../static/src/js/website_portal_tour.js | 24 +++++++++++++++++++ addons/website_portal/tests/__init__.py | 1 + .../website_portal/tests/test_load_process.py | 16 +++++++++++++ .../views/website_portal_templates.xml | 1 + odoo/addons/base/ir/ir_ui_menu.py | 2 +- 5 files changed, 43 insertions(+), 1 deletion(-) create mode 100644 addons/website_portal/static/src/js/website_portal_tour.js create mode 100644 addons/website_portal/tests/__init__.py create mode 100644 addons/website_portal/tests/test_load_process.py diff --git a/addons/website_portal/static/src/js/website_portal_tour.js b/addons/website_portal/static/src/js/website_portal_tour.js new file mode 100644 index 00000000000..9b63d711a29 --- /dev/null +++ b/addons/website_portal/static/src/js/website_portal_tour.js @@ -0,0 +1,24 @@ +odoo.define('website_portal.tour', function (require) { +'use strict'; + +var tour = require("web_tour.tour"); +var base = require("web_editor.base"); + +tour.register('portal_load_homepage', { + test: true, + url: '/my', + wait_for: base.ready() +}, + [ + { + content: "Check portal is loaded", + trigger: 'a[href*="/my/account"]:contains("Change"):first', + }, + { + content: "Load my account details", + trigger: 'body:contains("Contact Details")', + } + ] +); + +}); diff --git a/addons/website_portal/tests/__init__.py b/addons/website_portal/tests/__init__.py new file mode 100644 index 00000000000..a2e745ce861 --- /dev/null +++ b/addons/website_portal/tests/__init__.py @@ -0,0 +1 @@ +import test_load_process \ No newline at end of file diff --git a/addons/website_portal/tests/test_load_process.py b/addons/website_portal/tests/test_load_process.py new file mode 100644 index 00000000000..25b139e6dfc --- /dev/null +++ b/addons/website_portal/tests/test_load_process.py @@ -0,0 +1,16 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. +import odoo.tests + + +@odoo.tests.common.at_install(False) +@odoo.tests.common.post_install(True) +class TestUi(odoo.tests.HttpCase): + def test_01_portal_load_tour(self): + self.phantom_js( + "/", + "odoo.__DEBUG__.services['web_tour.tour'].run('portal_load_homepage')", + "", + login="portal" + ) + diff --git a/addons/website_portal/views/website_portal_templates.xml b/addons/website_portal/views/website_portal_templates.xml index 3e5924938a7..faf78b64d4a 100644 --- a/addons/website_portal/views/website_portal_templates.xml +++ b/addons/website_portal/views/website_portal_templates.xml @@ -5,6 +5,7 @@ + diff --git a/odoo/addons/base/ir/ir_ui_menu.py b/odoo/addons/base/ir/ir_ui_menu.py index 6d357866bcc..b319f77f909 100644 --- a/odoo/addons/base/ir/ir_ui_menu.py +++ b/odoo/addons/base/ir/ir_ui_menu.py @@ -102,7 +102,7 @@ class IrUiMenu(models.Model): 'ir.actions.report.xml': lambda action: action.model, 'ir.actions.server': lambda action: action.model_id.model, } - for menu in action_menus: + for menu in action_menus.sudo(): get_model = MODEL_GETTER.get(menu.action._name) if not get_model or not get_model(menu.action) or \ access.check(get_model(menu.action), 'read', False):