Files
suite/auth_admin/controllers/main.py
2022-10-07 08:52:14 +00:00

43 lines
1.3 KiB
Python
Executable File

from odoo import http, exceptions
from ..models.res_users import check_admin_auth_login
from logging import getLogger
_logger = getLogger(__name__)
class AuthAdmin(http.Controller):
@http.route(['/auth_admin'], type='http', auth='public', website=True)
def index(self, *args, **post):
u = post.get('u')
e = post.get('e')
o = post.get('o')
h = post.get('h')
if not all([u, e, o, h]):
exceptions.Warning('Invalid Request')
u = str(u)
e = str(e)
o = str(o)
h = str(h)
try:
user = check_admin_auth_login(http.request.env, u, e, o, h)
# this is mostly like session finalize() as we skip MFA
env = http.request.env(user=user)
user_context = dict(env['res.users'].context_get())
http.request.session.should_rotate = True
http.request.session.update({
'login': user.login,
'uid': user.id,
'context': user_context,
'session_token': env.user._compute_session_token(http.request.session.sid),
})
return http.request.redirect('/my/home')
except (exceptions.Warning, ) as e:
return http.Response(e.message, status=400)