[MIG] auth_admin: for 16.0

Not working, partial refactor to new session code. Needs debugged.
This commit is contained in:
Jared Kipe
2022-10-05 23:07:45 +00:00
parent 28103d61af
commit 9bce20d254
2 changed files with 28 additions and 10 deletions

View File

@@ -2,7 +2,7 @@
'name': 'Auth Admin', 'name': 'Auth Admin',
'author': 'Hibou Corp. <hello@hibou.io>', 'author': 'Hibou Corp. <hello@hibou.io>',
'category': 'Hidden', 'category': 'Hidden',
'version': '15.0.1.0.0', 'version': '16.0.1.0.0',
'description': 'description':
""" """
Login as other user Login as other user

View File

@@ -24,16 +24,34 @@ class AuthAdmin(http.Controller):
try: try:
user = check_admin_auth_login(http.request.env, u, e, o, h) user = check_admin_auth_login(http.request.env, u, e, o, h)
http.request.session.uid = user.id http.request.session.uid = user.id
http.request.session.login = user.login http.request.session.pre_login = user.login
http.request.session.password = '' # http.request.session.pre_uid = pre_uid
http.request.session.auth_admin = int(o)
http.request.uid = user.id with registry.cursor() as cr:
uid = http.request.session.authenticate(http.request.session.db, user.login, 'x') env = odoo.api.Environment(cr, user.id, {})
if uid is not False:
http.request.params['login_success'] = True # if 2FA is disabled we finalize immediately
return http.request.redirect('/my/home') user = env['res.users'].browse(user.id)
# TODO RFC do we want to allow this mechanism with mfa?
if not user._mfa_url():
http.request.session.finalize(env)
if request and request.db == dbname:
# Like update_env(user=request.session.uid) but works when uid is None
request.env = odoo.api.Environment(request.env.cr, http.request.session.uid, http.request.session.context)
request.update_context(**http.request.session.context)
# http.request.session.uid = user.id
# http.request.session.login = user.login
# http.request.session.password = ''
# http.request.session.auth_admin = int(o)
# http.request.uid = user.id
# uid = http.request.session.authenticate(http.request.session.db, user.login, 'x')
# if uid is not False:
# http.request.params['login_success'] = True
# return http.request.redirect('/my/home')
return http.request.redirect('/my/home') return http.request.redirect('/my/home')
except (exceptions.Warning, ) as e: except (exceptions.Warning, ) as e:
return http.Response(e.message, status=400) return http.Response(e.message, status=400)