from odoo import http, _ from odoo.http import request from odoo.addons.web.controllers.home import Home class CustomMasterLogin(Home): @http.route() def web_login(self, *args, **kw): request.env['ir.ui.menu'].sudo().clear_caches() master_selected = kw.get('master_select') response = super(CustomMasterLogin, self).web_login(*args, **kw) if response.is_qweb: response.qcontext['masters'] = request.env['master.control'].sudo().search([]) request.env['ir.ui.menu'].sudo().clear_caches() request.env['ir.ui.menu'].sudo()._visible_menu_ids() if request.session.uid and master_selected: user = request.env.user master = request.env['master.control'].sudo().search( [('code', '=', master_selected)], limit=1 ) if master.exists() and master.access_group_ids: if not (user.groups_id & master.access_group_ids): request.session.logout(keep_db=True) # Create a response with JavaScript alert html = f""" """ return http.Response(html, content_type='text/html') # request.session.uid = None # request.params['login_success'] = False # response.qcontext['error'] = _( # "You don't have access to login to '%s'. " # "Please contact the administrator." # ) % master.display_name # return response request.session['active_master'] = master.code return response