You just need to override the login controller in your module.
Example:
from odoo import http, _
import odoo
from odoo.http import route
from odoo.http import request
from odoo.addons.web.controllers.main import Home, ensure_db
class DebugMode(Home):
@http.route('/web/login', type='http', auth="none")
def web_login(self, redirect=None, **kw):
ensure_db()
request.params['login_success'] = False
if request.httprequest.method == 'GET' and redirect and request.session.uid:
return http.redirect_with_hash(redirect)
if not request.uid:
request.uid = odoo.SUPERUSER_ID
values = request.params.copy()
try:
values['databases'] = http.db_list()
except odoo.exceptions.AccessDenied:
values['databases'] = None
if request.httprequest.method == 'POST':
old_uid = request.uid
uid = request.session.authenticate(request.session.db, request.params['login'], request.params['password'])
if uid is not False:
request.params['login_success'] = True
if not redirect:
redirect = '/web?debug=1'
return http.redirect_with_hash(redirect)
request.uid = old_uid
values['error'] = _("Wrong login/password")
return request.render('web.login', values)
In the above method, are we just redirecting the url to / web? debug = 1 .
You can do this for certain users, for example, just create an Auto debugging mode group .
.
:
<record model="res.groups" id="group_auto_debug_mode">
<field name="name">Auto Debug Mode</field>
<field name="users" eval="[(4, ref('base.user_root'))]"/>
</record>
if request.env['res.users'].browse(request.uid).has_group('module_name.group_auto_debug_mode'):
redirect = '/web?debug=1'
else:
redirect = '/web'
Odoo .
https://apps.odoo.com/apps/modules/10.0/admin_auto_debug_mode/
.