/** @odoo-module **/ import { registry } from "@web/core/registry"; import { stepUtils } from "@web_tour/tour_service/tour_utils"; function openAccountSettingsTab() { return [{ content: 'Go to settings', trigger: '[data-menu-xmlid="base.menu_administration"]' }, { content: 'Wait for page', trigger: '.o_menu_brand:contains("Settings")', run: () => {} }, { content: "Open Users menu", trigger: '[data-menu-xmlid="base.menu_users"]' }, { content: "Open Users view", trigger: '[data-menu-xmlid="base.menu_action_res_users"]', run: function (helpers) { // funny story: the users view we're trying to reach, sometimes we're // already there, but if we re-click the next step executes before the // action has the time to re-load, the one after that doesn't, and our // selection get discarded by the action reloading, so here try to // see if we're already on the users action through the breadcrumb and // just close the menu if so const $crumb = $('.breadcrumb'); if ($crumb.text().indexOf('Users') === -1) { // on general settings page, click menu helpers.click(); } else { // else close menu helpers.click($('[data-menu-xmlid="base.menu_users"]')); } } }]; } registry.category("web_tour.tours").add('totp_admin_self_invite', { test: true, url: '/web', steps: () => [stepUtils.showAppsMenuItem(), ...openAccountSettingsTab(), { content: "open the user's form", trigger: "td.o_data_cell:contains(admin)", }, { content: "go to Account security Tab", trigger: "a.nav-link:contains(Account Security)", }, { content: "check that user cannot invite themselves to use 2FA.", trigger: "body", run: function () { const inviteBtn = $('button:contains(Invite to use 2FA)')[0]; if (!inviteBtn) { $('body').addClass('CannotInviteYourself'); } } }, { content: "check that user cannot invite themself.", trigger: "body.CannotInviteYourself", isCheck: true, }]}); registry.category("web_tour.tours").add('totp_admin_invite', { test: true, url: '/web', steps: () => [stepUtils.showAppsMenuItem(), ...openAccountSettingsTab(), { content: "open the user's form", trigger: "td.o_data_cell:contains(demo)", }, { content: "go to Account security Tab", trigger: "a.nav-link:contains(Account Security)", }, { content: "check that demo user can be invited to use 2FA.", trigger: "button:contains(Invite to use 2FA)", isCheck: true, }]});