Files
odoo_source/addons/mail/models/mail_gateway_allowed.py
T
niyasraphy 4857c0e28b [IMP] mail: make email required on mail.gateway.allowed model
before this commit, the email field is not required in the model level as well as in the view level, and this is the only normal(other than compute) field in the model. as it is not required now, user can create as many record without inputing any values.

Settings -> Technical -> Emails -> Mail Gateway Allowed

after this commit, the email field will be required and record can be created only by adding the email.

closes odoo/odoo#110026

Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2023-01-23 20:27:01 +01:00

51 lines
2.0 KiB
Python

# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from markupsafe import Markup
from odoo import _, api, fields, models, tools
class MailGatewayAllowed(models.Model):
"""List of trusted email address which won't have the quota restriction.
The incoming emails have a restriction of the number of records they can
create with alias, defined by the 2 systems parameters;
- mail.gateway.loop.minutes
- mail.gateway.loop.threshold
But we might have some legit use cases for which we want to receive a ton of emails
from an automated-source. This model stores those trusted source and this restriction
won't apply to them.
"""
_description = 'Mail Gateway Allowed'
_name = 'mail.gateway.allowed'
email = fields.Char('Email Address', required=True)
email_normalized = fields.Char(
string='Normalized Email', compute='_compute_email_normalized', store=True, index=True)
@api.depends('email')
def _compute_email_normalized(self):
for record in self:
record.email_normalized = tools.email_normalize(record.email)
@api.model
def get_empty_list_help(self, help_message):
get_param = self.env['ir.config_parameter'].sudo().get_param
LOOP_MINUTES = int(get_param('mail.gateway.loop.minutes', 120))
LOOP_THRESHOLD = int(get_param('mail.gateway.loop.threshold', 20))
return Markup(_('''
<p class="o_view_nocontent_smiling_face">
Add addresses to the Allowed List
</p><p>
To protect you from spam and reply loops, Odoo automatically blocks emails
coming to your gateway past a threshold of <b>%(threshold)i</b> emails every <b>%(minutes)i</b>
minutes. If there are some addresses from which you need to receive very frequent
updates, you can however add them below and Odoo will let them go through.
</p>''')) % {
'threshold': LOOP_THRESHOLD,
'minutes': LOOP_MINUTES,
}