From fc7fa1683c474726202b0c90dc257891bf23caca Mon Sep 17 00:00:00 2001 From: Benoit Socias Date: Fri, 26 May 2023 13:06:40 +0000 Subject: [PATCH] [FIX] website: ignore leading slashes when creating a page When the name given when creating a new page starts with a slash, the werkzeug route `/website/add/` cannot be matched. This leads to wrong navigation situations. This commit removes any leading slash from the entered page name. Steps to reproduce: - Create a page. - Enter "/abc" as name. => A 404 error page was reached. task-3328827 X-original-commit: 7ff29b680d8552f0b4a440b3209a6a37357af21e Part-of: odoo/odoo#123693 --- addons/website/static/src/components/dialog/dialog.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/addons/website/static/src/components/dialog/dialog.js b/addons/website/static/src/components/dialog/dialog.js index 634ea9c3f02..875f5722238 100644 --- a/addons/website/static/src/components/dialog/dialog.js +++ b/addons/website/static/src/components/dialog/dialog.js @@ -108,7 +108,9 @@ export class AddPageDialog extends Component { async addPage() { const params = {'add_menu': this.state.addMenu || '', csrf_token}; - const url = `/website/add/${encodeURIComponent(this.state.name)}`; + // Remove any leading slash. + const pageName = this.state.name.replace(/^\/*/, ""); + const url = `/website/add/${encodeURIComponent(pageName)}`; const websiteId = parseInt(this.state.websiteId); if (this.props.selectWebsite) { params['website_id'] = websiteId;