Přejít na obsah
Menu
You need to be registered to interact with the community.
This question has been flagged
1 Odpovědět
1078 Zobrazení

I am using the following code to get user ip information to record activity history, but the received ip is the ip of the active server, my Odoo server is deployed on ubuntu server 22.04


This is my code:

def _get_info_active(self):
"""
:return: ip_address, location, device_name
"""
try:
client_ip = request.httprequest.environ['REMOTE_ADDR']
location_info = {}
try:
response = requests.get(f'https://ipinfo.io/{client_ip}/json')
location_info = response.json()
except requests.RequestException:
location_info = {"error": "Could not retrieve location info"}

user_agent = request.httprequest.user_agent.string
return client_ip, f"{location_info.get('city')}, {location_info.get('region')}, {location_info.get('country')}", user_agent

except Exception as e:
raise UserError(str(e))
Avatar
Zrušit
Nejlepší odpověď

Check https://www.odoo.com/forum/help-1/how-to-check-when-a-user-was-last-active-odoo-18-264495 and https://github.com/odoo/odoo/blob/18.0/odoo/addons/base/models/res_device.py#L82 (maybe you can review our code to see how we do it)

Avatar
Zrušit
Autor

I can't find it on Odoo16

We did not add this until version 18

Related Posts Odpovědi Zobrazení Aktivita
0
bře 15
4515
7
úno 24
12249
0
lis 17
4043
1
kvě 25
1088
0
lis 24
1273