Files
odoo_source/addons/mail/security/ir.model.access.csv
T
David Beguin 98ce81cac5 [IMP] mail - mail.blacklist: Not send mass_mail to recipient that does't want to
Purpose
=======
Improve mailing subscription to be more compliant with the European GDPR law.
Keep a list of people who does not want to receive promotional emails
(or mass mailing in general) anymore.

Specifications
===========
This commit is regrouping some main changes on mass mailing.
- Added blacklist : Avoid sending mass mailing to blacklisted recipient
  (blacklisted = email address that doens't want to receive mass mailing anymore)

Detailed implementation
===================
Mail :
- Add Blacklist mechanism in mail module (NOT in mass-mailing) :
  as we can send mass-mail without the mass-mailing module
- Unicity in email -> To avoid error in import, override the create and return
  the existing record if any, else, create the record normally.
- Blacklisting is done by email address and is cross model.
  Will apply to model that inherit the blacklist.mixin.
- field 'is_blacklisted' -> computed : check if email is in blacklist
  + search method to be able to filter on is_blacklisted
- When a email address is blacklisted, it will never get mass mailings anymore.
  Even if the email address is added to another mailing lists
- Avoid sending notification to blacklisted recipients when sending email
  in mass mail mode. If the recipient is blacklisted, we should not even send a
  notification in the recipient's chatter for an email that he won't even
  receive.
- When a email address is blacklisted, it can still get 'normal' mailings.
- The blacklist shoud be accessible in
  Mass Mailing / Configuration / Blacklist
  and Settings / Technical / Email / Blacklist
  -> Renaming Settings / Technical / White / Black List config menu item
     into Channel Moderation to avoid confusion with Mass Mail Blacklist
- Add indexes to the blacklist table (on email) to make it fast for access for
  the different use cases
- _primary_email : attribute that must be overriden to specify which field must
  be used as email in the blacklist mechanism.
- Filtering the blacklisted recipient in mail composer :
  done in mail._get mail value()
  In case of real mass mailing, we need the statistics to be computed in order
  to know how many recipients were ignored in the mail.
  So we cannot avoid sending mail but instead flag the mail as canceled.

Task ID 33224
2018-08-10 17:46:08 +02:00

3.8 KiB

1idnamemodel_id:idgroup_id:idperm_readperm_writeperm_createperm_unlink
2access_mail_message_allmail.message.allmodel_mail_message1000
3access_mail_message_portalmail.message.portalmodel_mail_messagebase.group_portal1111
4access_mail_message_usermail.message.usermodel_mail_messagebase.group_user1111
5access_mail_mail_allmail.mail.allmodel_mail_mail1000
6access_mail_mail_portalmail.mail.portalmodel_mail_mailbase.group_portal1110
7access_mail_mail_usermail.mail.usermodel_mail_mailbase.group_user1110
8access_mail_mail_systemmail.mail.systemmodel_mail_mailbase.group_system1111
9access_mail_followers_allmail.followers.allmodel_mail_followers1000
10access_mail_followers_portalmail.followers.portalmodel_mail_followersbase.group_portal1110
11access_mail_followers_usermail.followers.usermodel_mail_followersbase.group_user1110
12access_mail_followers_systemmail.followers.systemmodel_mail_followersbase.group_system1111
13access_mail_notification_portalmail.notification.portalmodel_mail_notificationbase.group_portal1000
14access_mail_notification_usermail.notification.usermodel_mail_notificationbase.group_user1110
15access_mail_notification_systemmail.notification.systemmodel_mail_notificationbase.group_system1111
16access_mail_channel_allmail.group.allmodel_mail_channel1000
17access_mail_channel_usermail.group.usermodel_mail_channelbase.group_user1111
18access_mail_channel_partner_publicmail.channel.partner.publicmodel_mail_channel_partnerbase.group_public1000
19access_mail_channel_partner_portalmail.channel.partner.portalmodel_mail_channel_partnerbase.group_portal1111
20access mail_channel_partner_usermail.channel.partner.usermodel_mail_channel_partnerbase.group_user1111
21access_mail_moderation_usermail.moderation.usermodel_mail_moderationbase.group_user1111
22access_mail_alias_allmail.alias.allmodel_mail_alias1000
23access_mail_alias_usermail.alias.usermodel_mail_aliasbase.group_user1111
24access_mail_alias_systemmail.alias.systemmodel_mail_aliasbase.group_system1111
25access_mail_message_subtype_allmail.message.subtype.allmodel_mail_message_subtype1000
26access_mail_message_subtype_usermail.message.subtype.usermodel_mail_message_subtypebase.group_user1111
27access_mail_tracking_value_allmail.tracking.value.allmodel_mail_tracking_value0000
28access_mail_tracking_value_portalmail.tracking.value.portalmodel_mail_tracking_valuebase.group_portal0000
29access_mail_tracking_value_usermail.tracking.value.usermodel_mail_tracking_valuebase.group_user0000
30access_mail_tracking_value_systemmail.tracking.value.systemmodel_mail_tracking_valuebase.group_system1111
31access_mail_thread_allmail.thread.allmodel_mail_thread1111
32access_publisher_warranty_contract_allpublisher.warranty.contract.allmodel_publisher_warranty_contract1111
33access_mail_templatemail.templatemodel_mail_templatebase.group_user1110
34access_mail_template_systemmail.template_systemmodel_mail_templatebase.group_system1111
35access_mail_shortcodemail.shortcodemodel_mail_shortcodebase.group_user1111
36access_mail_shortcode_portalmail.shortcode.portalmodel_mail_shortcodebase.group_portal1000
37access_mail_activity_allmail.activity.allmodel_mail_activity0000
38access_mail_activity_usermail.activity.usermodel_mail_activitybase.group_user1111
39access_mail_activity_type_allmail.activity.type.allmodel_mail_activity_type0000
40access_mail_activity_type_usermail.activity.type.usermodel_mail_activity_typebase.group_user1000
41access_mail_activity_type_systemmail.activity.type.systemmodel_mail_activity_typebase.group_system1111
42access_mail_blacklist_systemaccess_mail_blacklist_systemmodel_mail_blacklistbase.group_system1111