Odoo-默认为用户启用开发者模式
Odoo- Enable developer mode by default for a user
我正在使用 Odoo 10-e。我想在用户登录时默认为用户启用开发者模式,并且该用户不是管理员。这在 odoo 10 中可行吗?
您只需覆盖模块中的 Web 登录控制器。
例如:
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
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)
在上面的方法中,我们只是将 URL 重定向到 /web?debug=1.
您可以为特定用户执行此操作,也可以创建组 自动调试模式。
只有这组用户可以调试模式自动登录。
例如:
<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 社区模块 link。
https://apps.odoo.com/apps/modules/10.0/admin_auto_debug_mode/
这可能对你有帮助。
我正在使用 Odoo 10-e。我想在用户登录时默认为用户启用开发者模式,并且该用户不是管理员。这在 odoo 10 中可行吗?
您只需覆盖模块中的 Web 登录控制器。
例如:
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
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)
在上面的方法中,我们只是将 URL 重定向到 /web?debug=1.
您可以为特定用户执行此操作,也可以创建组 自动调试模式。
只有这组用户可以调试模式自动登录。
例如:
<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 社区模块 link。
https://apps.odoo.com/apps/modules/10.0/admin_auto_debug_mode/
这可能对你有帮助。