From aab3c3df0621693d2e54c6c6783fff52c6046ef9 Mon Sep 17 00:00:00 2001 From: Denis Ledoux Date: Wed, 2 Mar 2022 09:54:01 +0000 Subject: [PATCH] [FIX] auth_totp_mail_enforce: browser falsy when using the Odoo app When using the odoo app, `request.httprequest.user_agent.browser` is `False`, instead of a string expected. Therefore, `capitalize` cannot be called ``` 2022-03-02 09:44:01,267 1321846 ERROR dle-test1 odoo.addons.saas_trial.models.res_users: 2fa by email failed Traceback (most recent call last): File "/home/odoo/src/custom/trial/saas_trial/models/res_users.py", line 267, in _send_totp_mail_code return super()._send_totp_mail_code() File "/home/odoo/src/odoo/saas-15.1/addons/auth_totp_mail_enforce/models/res_users.py", line 95, in _send_totp_mail_code 'browser': request.httprequest.user_agent.browser.capitalize(), AttributeError: 'NoneType' object has no attribute 'capitalize' ``` closes odoo/odoo#85684 X-original-commit: 5a87db453fcfd750934d1a1d62c00d93ad01c0e1 Signed-off-by: Denis Ledoux (dle) --- addons/auth_totp_mail_enforce/models/res_users.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/addons/auth_totp_mail_enforce/models/res_users.py b/addons/auth_totp_mail_enforce/models/res_users.py index e79bb29fe93..e0018a13e66 100644 --- a/addons/auth_totp_mail_enforce/models/res_users.py +++ b/addons/auth_totp_mail_enforce/models/res_users.py @@ -89,10 +89,12 @@ class Users(models.Model): context = {} if request: geoip = request.session.geoip + device = request.httprequest.user_agent.platform + browser = request.httprequest.user_agent.browser context.update({ 'location': f"{geoip['city']}, {geoip['country_name']}" if geoip else None, - 'device': request.httprequest.user_agent.platform.capitalize(), - 'browser': request.httprequest.user_agent.browser.capitalize(), + 'device': device and device.capitalize() or None, + 'browser': browser and browser.capitalize() or None, 'ip': request.httprequest.environ['REMOTE_ADDR'], }) email_values = {