Mercurial > libervia-backend
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) |