diff --git a/addons/web/models/ir_http.py b/addons/web/models/ir_http.py index 0bb015d0c41..9b57e70be3a 100644 --- a/addons/web/models/ir_http.py +++ b/addons/web/models/ir_http.py @@ -86,10 +86,12 @@ class Http(models.AbstractModel): mods = odoo.conf.server_wide_modules or [] if request.db: mods = list(request.registry._init_modules) + mods + is_internal_user = user.has_group('base.group_user') session_info = { "uid": session_uid, "is_system": user._is_system() if session_uid else False, "is_admin": user._is_admin() if session_uid else False, + "is_internal_user": is_internal_user, "user_context": user_context, "db": self.env.cr.dbname, "user_settings": self.env['res.users.settings']._find_or_create_for_user(user)._res_users_settings_format(), @@ -119,7 +121,7 @@ class Http(models.AbstractModel): } if request.session.debug: session_info['bundle_params']['debug'] = request.session.debug - if self.env.user.has_group('base.group_user'): + if is_internal_user: # the following is only useful in the context of a webclient bootstrapping # but is still included in some other calls (e.g. '/web/session/authenticate') # to avoid access errors and unnecessary information, it is only included for users diff --git a/addons/web/static/src/core/user_service.js b/addons/web/static/src/core/user_service.js index 08f175d1117..5feade2beac 100644 --- a/addons/web/static/src/core/user_service.js +++ b/addons/web/static/src/core/user_service.js @@ -19,6 +19,8 @@ export const userService = { kwargs: { context }, }); }); + groupCache.cache["base.group_user"] = session.is_internal_user; + groupCache.cache["base.group_system"] = session.is_system; const accessRightCache = new Cache((model, operation) => { const url = `/web/dataset/call_kw/${model}/check_access_rights`; return rpc(url, {