From 0c89ca0f8f2d96e37353348fe33591da8142368b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Wed, 28 May 2014 11:12:33 +0200 Subject: [PATCH] [FIX] website_mail, websit_mail_group: moved discussion group snippet to the right module; it should not be available when the mailing list archives module is not installed. Also fixed get_alias_info route to be mail_group specific and to avoid allowing people to browse the database. --- addons/website_mail/controllers/main.py | 17 ------ addons/website_mail/views/snippets.xml | 48 ----------------- addons/website_mail/views/website_mail.xml | 2 - addons/website_mail_group/__openerp__.py | 3 +- addons/website_mail_group/controllers/main.py | 6 +++ .../src/js/website_mail_group.editor.js} | 0 .../src/js/website_mail_group.snippet.js} | 17 ++++-- addons/website_mail_group/views/snippets.xml | 53 +++++++++++++++++++ .../views/website_mail_group.xml | 17 ++++-- 9 files changed, 86 insertions(+), 77 deletions(-) rename addons/{website_mail/static/src/js/website_mail.editor.js => website_mail_group/static/src/js/website_mail_group.editor.js} (100%) rename addons/{website_mail/static/src/js/website_mail.js => website_mail_group/static/src/js/website_mail_group.snippet.js} (84%) create mode 100644 addons/website_mail_group/views/snippets.xml diff --git a/addons/website_mail/controllers/main.py b/addons/website_mail/controllers/main.py index 8cdb73030a8..081ba93b8b4 100644 --- a/addons/website_mail/controllers/main.py +++ b/addons/website_mail/controllers/main.py @@ -100,20 +100,3 @@ class WebsiteMail(http.Controller): ], context=context)) == 1 return values - - @http.route(['/website_mail/get_alias_info'], type='json', auth='public', website=True) - def get_alias_info(self, model, id, **post): - id = int(id) - cr, uid, context = request.cr, request.uid, request.context - obj = request.registry.get(model) - - values = {'alias_name': False} - - if not obj: - return values - obj_ids = obj.exists(cr, SUPERUSER_ID, [id], context=context) - if obj_ids and 'alias_id' in obj._all_columns: - alias_id = obj.browse(cr, SUPERUSER_ID, obj_ids[0], context=context).alias_id - values['alias_name'] = alias_id and alias_id.alias_domain and '%s@%s' % (alias_id.alias_name, alias_id.alias_domain) or False - - return values diff --git a/addons/website_mail/views/snippets.xml b/addons/website_mail/views/snippets.xml index 8a737b98927..ebbcf6d4a70 100644 --- a/addons/website_mail/views/snippets.xml +++ b/addons/website_mail/views/snippets.xml @@ -493,53 +493,5 @@ - - - diff --git a/addons/website_mail/views/website_mail.xml b/addons/website_mail/views/website_mail.xml index 2882125de67..6202e00342b 100644 --- a/addons/website_mail/views/website_mail.xml +++ b/addons/website_mail/views/website_mail.xml @@ -21,8 +21,6 @@ diff --git a/addons/website_mail_group/__openerp__.py b/addons/website_mail_group/__openerp__.py index f83fc38ce7c..768e7f27156 100644 --- a/addons/website_mail_group/__openerp__.py +++ b/addons/website_mail_group/__openerp__.py @@ -11,7 +11,8 @@ OpenERP Mail Group : Mailing List Archives 'author': 'OpenERP SA', 'depends': ['website_mail'], 'data': [ - 'views/website_mail_group.xml' + 'views/website_mail_group.xml', + 'views/snippets.xml', ], 'qweb': [], 'installable': True, diff --git a/addons/website_mail_group/controllers/main.py b/addons/website_mail_group/controllers/main.py index 7320ebc6548..a28b808d9f2 100644 --- a/addons/website_mail_group/controllers/main.py +++ b/addons/website_mail_group/controllers/main.py @@ -129,3 +129,9 @@ class MailGroup(http.Controller): 'replies_per_page': self._replies_per_page, } return request.registry['ir.ui.view'].render(request.cr, request.uid, 'website_mail_group.messages_short', values, engine='ir.qweb', context=request.context) + + @http.route("/groups//get_alias_info", type='json', auth='public', website=True) + def get_alias_info(self, group, **post): + return { + 'alias_name': group.alias_id and group.alias_id.alias_name and group.alias_id.alias_domain and '%s@%s' % (group.alias_id.alias_name, group.alias_id.alias_domain) or False + } diff --git a/addons/website_mail/static/src/js/website_mail.editor.js b/addons/website_mail_group/static/src/js/website_mail_group.editor.js similarity index 100% rename from addons/website_mail/static/src/js/website_mail.editor.js rename to addons/website_mail_group/static/src/js/website_mail_group.editor.js diff --git a/addons/website_mail/static/src/js/website_mail.js b/addons/website_mail_group/static/src/js/website_mail_group.snippet.js similarity index 84% rename from addons/website_mail/static/src/js/website_mail.js rename to addons/website_mail_group/static/src/js/website_mail_group.snippet.js index 2a79bccccc5..fc0e2bb864f 100644 --- a/addons/website_mail/static/src/js/website_mail.js +++ b/addons/website_mail_group/static/src/js/website_mail_group.snippet.js @@ -33,6 +33,7 @@ return; }, on_click: function () { + event.preventDefault(); var self = this; var $email = this.$target.find(".js_follow_email"); @@ -69,11 +70,17 @@ }, get_alias_info: function() { var self = this; - return openerp.jsonRpc('/website_mail/get_alias_info', 'call', { - model: this.$target.data('object'), - id: this.$target.data('id'), - }).then(function (data) { - self.$target.find('.js_mg_email').attr('href', 'mailto:' + data.alias_name); + if (! this.$target.data('id')) { + return $.Deferred().resolve(); + } + return openerp.jsonRpc('/groups/' + this.$target.data('id') + '/get_alias_info', 'call', {}).then(function (data) { + if (data.alias_name) { + self.$target.find('.js_mg_email').attr('href', 'mailto:' + data.alias_name); + self.$target.find('.js_mg_email').removeClass('hidden'); + } + else { + self.$target.find('.js_mg_email').addClass('hidden'); + } }); } }); diff --git a/addons/website_mail_group/views/snippets.xml b/addons/website_mail_group/views/snippets.xml new file mode 100644 index 00000000000..56ba81d81b3 --- /dev/null +++ b/addons/website_mail_group/views/snippets.xml @@ -0,0 +1,53 @@ + + + + + + + + \ No newline at end of file diff --git a/addons/website_mail_group/views/website_mail_group.xml b/addons/website_mail_group/views/website_mail_group.xml index 76edd524753..1c0ee08edd4 100644 --- a/addons/website_mail_group/views/website_mail_group.xml +++ b/addons/website_mail_group/views/website_mail_group.xml @@ -8,6 +8,13 @@ + +