Mercurial > libervia-pubsub
comparison sat_pubsub/privilege.py @ 455:0b5233981671
backend: fix `delete` notification + add `purge` notification
author | Goffi <goffi@goffi.org> |
---|---|
date | Mon, 02 Aug 2021 21:58:17 +0200 |
parents | 96342e7e9f5d |
children | 607616f9ef5b |
comparison
equal
deleted
inserted
replaced
454:7f1394bb96db | 455:0b5233981671 |
---|---|
184 self.send(main_message) | 184 self.send(main_message) |
185 | 185 |
186 def notifyPublish(self, pep_jid, nodeIdentifier, notifications): | 186 def notifyPublish(self, pep_jid, nodeIdentifier, notifications): |
187 """Do notifications using privileges""" | 187 """Do notifications using privileges""" |
188 for subscriber, subscriptions, items in notifications: | 188 for subscriber, subscriptions, items in notifications: |
189 message = self._pubsub_service._createNotification('items', pep_jid, | 189 message = self._pubsub_service._createNotification( |
190 nodeIdentifier, subscriber, | 190 'items', |
191 subscriptions) | 191 pep_jid, |
192 nodeIdentifier, | |
193 subscriber, | |
194 subscriptions | |
195 ) | |
192 for item in items: | 196 for item in items: |
193 item.uri = pubsub.NS_PUBSUB_EVENT | 197 item.uri = pubsub.NS_PUBSUB_EVENT |
194 message.event.items.addChild(item) | 198 message.event.items.addChild(item) |
195 self.sendMessage(message) | 199 self.sendMessage(message) |
196 | 200 |
197 | |
198 def notifyRetract(self, pep_jid, nodeIdentifier, notifications): | 201 def notifyRetract(self, pep_jid, nodeIdentifier, notifications): |
199 for subscriber, subscriptions, items in notifications: | 202 for subscriber, subscriptions, items in notifications: |
200 message = self._pubsub_service._createNotification('items', pep_jid, | 203 message = self._pubsub_service._createNotification( |
201 nodeIdentifier, subscriber, | 204 'items', |
202 subscriptions) | 205 pep_jid, |
206 nodeIdentifier, | |
207 subscriber, | |
208 subscriptions | |
209 ) | |
203 for item in items: | 210 for item in items: |
204 retract = domish.Element((None, "retract")) | 211 retract = domish.Element((None, "retract")) |
205 retract['id'] = item['id'] | 212 retract['id'] = item['id'] |
206 message.event.items.addChild(retract) | 213 message.event.items.addChild(retract) |
207 self.sendMessage(message) | 214 self.sendMessage(message) |
208 | 215 |
209 | 216 def notifyDelete(self, pep_jid, nodeIdentifier, subscribers, redirectURI=None): |
210 # def notifyDelete(self, service, nodeIdentifier, subscribers, | 217 for subscriber in subscribers: |
211 # redirectURI=None): | 218 message = self._pubsub_service._createNotification( |
212 # # TODO | 219 'delete', |
213 # for subscriber in subscribers: | 220 pep_jid, |
214 # message = self._createNotification('delete', service, | 221 nodeIdentifier, |
215 # nodeIdentifier, | 222 subscriber |
216 # subscriber) | 223 ) |
217 # if redirectURI: | 224 if redirectURI: |
218 # redirect = message.event.delete.addElement('redirect') | 225 redirect = message.event.delete.addElement('redirect') |
219 # redirect['uri'] = redirectURI | 226 redirect['uri'] = redirectURI |
220 # self.send(message) | 227 self.sendMessage(message) |
221 | 228 |
229 def notifyPurge(self, pep_jid, nodeIdentifier, subscribers): | |
230 for subscriber in subscribers: | |
231 message = self._pubsub_service._createNotification( | |
232 'purge', | |
233 pep_jid, | |
234 nodeIdentifier, | |
235 subscriber | |
236 ) | |
237 self.sendMessage(message) | |
222 | 238 |
223 ## presence ## | 239 ## presence ## |
224 | 240 |
225 @defer.inlineCallbacks | 241 @defer.inlineCallbacks |
226 def onPresence(self, presence_elt): | 242 def onPresence(self, presence_elt): |