comparison src/plugins/plugin_xep_0184.py @ 2140:f79935f41125

plugin XEP-0184: check if entity is allowed to see our presence before returning receipt
author Goffi <goffi@goffi.org>
date Mon, 06 Feb 2017 20:47:36 +0100
parents 6a66c8c5a567
children 1d3f73e065e1
comparison
equal deleted inserted replaced
2139:f8401024ab28 2140:f79935f41125
17 # You should have received a copy of the GNU Affero General Public License 17 # You should have received a copy of the GNU Affero General Public License
18 # along with this program. If not, see <http://www.gnu.org/licenses/>. 18 # along with this program. If not, see <http://www.gnu.org/licenses/>.
19 from sat.core.i18n import _ 19 from sat.core.i18n import _
20 from sat.core.log import getLogger 20 from sat.core.log import getLogger
21 from twisted.internet import reactor 21 from twisted.internet import reactor
22 from twisted.words.protocols.jabber import xmlstream 22 from twisted.words.protocols.jabber import xmlstream, jid
23 from twisted.words.xish import domish 23 from twisted.words.xish import domish
24 log = getLogger(__name__) 24 log = getLogger(__name__)
25 25
26 from wokkel import disco, iwokkel 26 from wokkel import disco, iwokkel
27 from zope.interface import implements 27 from zope.interface import implements
119 119
120 def onMessageDeliveryReceiptsRequest(self, msg_elt, client): 120 def onMessageDeliveryReceiptsRequest(self, msg_elt, client):
121 """This method is called on message delivery receipts **request** (XEP-0184 #7) 121 """This method is called on message delivery receipts **request** (XEP-0184 #7)
122 @param msg_elt: message element 122 @param msg_elt: message element
123 @param client: %(doc_client)s""" 123 @param client: %(doc_client)s"""
124 from_jid = jid.JID(msg_elt['from'])
124 125
125 if self._isActif(client.profile): 126 if self._isActif(client.profile) and client.roster.isPresenceAuthorised(from_jid):
126 received_elt_ret = domish.Element((NS_MESSAGE_DELIVERY_RECEIPTS, 'received')) 127 received_elt_ret = domish.Element((NS_MESSAGE_DELIVERY_RECEIPTS, 'received'))
127 received_elt_ret["id"] = msg_elt["id"] 128 received_elt_ret["id"] = msg_elt["id"]
128 129
129 msg_result_elt = xmlstream.toResponse(msg_elt, 'result') 130 msg_result_elt = xmlstream.toResponse(msg_elt, 'result')
130 msg_result_elt.addChild(received_elt_ret) 131 msg_result_elt.addChild(received_elt_ret)