I installed on my odoo v16 the addon "Login user Details" and after installing it if I try to connect by xml-ripcord I get this error:
[
"faultCode" => 1
"faultString" => """
Traceback (most recent call last):\n
File "/usr/lib/python3/dist-packages/odoo/addons/base/controllers/rpc.py", line 148, in xmlrpc_2\n
response = self._xmlrpc(service)\n
File "/usr/lib/python3/dist-packages/odoo/addons/base/controllers/rpc.py", line 128, in _xmlrpc\n
result = dispatch_rpc(service, method, params)\n
File "/usr/lib/python3/dist-packages/odoo/http.py", line 366, in dispatch_rpc\n
return dispatch(method, params)\n
File "/usr/lib/python3/dist-packages/odoo/service/common.py", line 56, in dispatch\n
return g[exp_method_name](*params)\n
File "/usr/lib/python3/dist-packages/odoo/service/common.py", line 27, in exp_authenticate\n
return res_users.authenticate(db, login, password, {**user_agent_env, 'interactive': False})\n
File "/usr/lib/python3/dist-packages/odoo/addons/base/models/res_users.py", line 798, in authenticate\n
uid = cls._login(db, login, password, user_agent_env=user_agent_env)\n
File "/usr/lib/python3/dist-packages/odoo/addons/base/models/res_users.py", line 773, in _login\n
user._check_credentials(password, user_agent_env)\n
File "/var/lib/odoo/.local/share/Odoo/addons/16.0/login_user_detail/models/login_user_details.py", line 39, in _check_credentials\n
ip_address = request.httprequest.environ['REMOTE_ADDR']\n
File "/usr/lib/python3/dist-packages/werkzeug/local.py", line 432, in __get__\n
obj = instance._get_current_object()\n
File "/usr/lib/python3/dist-packages/werkzeug/local.py", line 554, in _get_current_object\n
return self.__local() # type: ignore\n
File "/usr/lib/python3/dist-packages/werkzeug/local.py", line 226, in _lookup\n
raise RuntimeError("object unbound")\n
RuntimeError: object unbound\n
"""
]
In the code I see this:
import logging
from itertools import chain
from odoo.http import request
from odoo import models, fields, api
_logger = logging.getLogger(__name__)
USER_PRIVATE_FIELDS = ['password']
concat = chain.from_iterable
class LoginUserDetail(models.Model):
_inherit = 'res.users'
@api.model
def _check_credentials(self, password, user_agent_env):
result = super(LoginUserDetail, self)._check_credentials(password, user_agent_env)
ip_address = request.httprequest.environ['REMOTE_ADDR']
vals = {'name': self.name,
'ip_address': ip_address
}
self.env['login.detail'].sudo().create(vals)
return result
Seems like request doesn't exists? how could I fixed it?