Welcome to mirror list, hosted at ThFree Co, Russian Federation.

dev.gajim.org/gajim/gajim-plugins.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYann Leboulanger <asterix@lagaule.org>2012-08-26 01:10:55 +0400
committerYann Leboulanger <asterix@lagaule.org>2012-08-26 01:10:55 +0400
commit5c97bb1b35b960ea73f65b558f01a4617a3a1715 (patch)
tree86bbf51e35aabdd24c0a4cb0a23a4552423bc055 /anti_spam/anti_spam.py
parentab23296207da799d18fea9e47de3359f0ae5be29 (diff)
[Anti-Spam] add ability to block subscription request
Diffstat (limited to 'anti_spam/anti_spam.py')
-rw-r--r--anti_spam/anti_spam.py15
1 files changed, 15 insertions, 0 deletions
diff --git a/anti_spam/anti_spam.py b/anti_spam/anti_spam.py
index 1e6dfc8..f1ee065 100644
--- a/anti_spam/anti_spam.py
+++ b/anti_spam/anti_spam.py
@@ -46,12 +46,15 @@ class AntiSpamPlugin(GajimPlugin):
self._nec_atom_entry_received),
'message-received': (ged.PRECORE,
self._nec_decrypted_message_received_received),
+ 'subscribe-presence-received': (ged.POSTCORE,
+ self._nec_subscribe_presence_received),
}
self.config_default_values = {
'block_pubsub_messages': (False, 'If True, Gajim will block incoming messages from pubsub.'),
'disable_xhtml_muc': (False, ''),
'disable_xhtml_pm': (False, ''),
+ 'block_subscription_requests': (False, ''),
}
@log_calls('AntiSpamPlugin')
@@ -69,6 +72,13 @@ class AntiSpamPlugin(GajimPlugin):
self.remove_xhtml(obj)
return False
+ @log_calls('AntiSpamPlugin')
+ def _nec_subscribe_presence_received(self, obj):
+ if self.config['block_subscription_requests'] and \
+ not gajim.contacts.get_contacts(obj.conn.name, obj.jid):
+ log.info('discarding subscription request from %s' % obj.jid)
+ return True
+
def remove_xhtml(self, obj):
html_node = obj.stanza.getTag('html')
if html_node:
@@ -98,6 +108,8 @@ class AntiSpamPluginConfigDialog(GajimPluginConfigDialog):
widget.set_active(self.plugin.config['disable_xhtml_muc'])
widget = self.xml.get_object('disable_xhtml_pm_checkbutton')
widget.set_active(self.plugin.config['disable_xhtml_pm'])
+ widget = self.xml.get_object('block_subscription_requests_checkbutton')
+ widget.set_active(self.plugin.config['block_subscription_requests'])
def on_block_pubsub_messages_checkbutton_toggled(self, button):
self.plugin.config['block_pubsub_messages'] = button.get_active()
@@ -107,3 +119,6 @@ class AntiSpamPluginConfigDialog(GajimPluginConfigDialog):
def on_disable_xhtml_pm_checkbutton_toggled(self, button):
self.plugin.config['disable_xhtml_pm'] = button.get_active()
+
+ def on_block_subscription_requests_checkbutton_toggled(self, button):
+ self.plugin.config['block_subscription_requests'] = button.get_active()