[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) <dle@odoo.com>
This commit is contained in:
Denis Ledoux
2022-03-02 22:16:52 +00:00
parent 85c667841e
commit aab3c3df06
@@ -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 = {