# HG changeset patch # User Goffi # Date 1503858398 -7200 # Node ID d1f63ae1eaf49823b7787637e3915819196173c4 # Parent f33406fcab5cc54a473ace1ab0cb9075221eaae7 privilege: added isSubscribedFrom method to check if an entity has presence subscription from an other entity. diff -r f33406fcab5c -r d1f63ae1eaf4 sat_pubsub/privilege.py --- a/sat_pubsub/privilege.py Thu Aug 24 01:35:43 2017 +0200 +++ b/sat_pubsub/privilege.py Sun Aug 27 20:26:38 2017 +0200 @@ -143,10 +143,27 @@ d.addCallback(processRoster) return d + def _isSubscribedFrom(self, roster, entity, roster_owner_jid): + try: + return roster[entity.userhostJID()].subscriptionFrom + except KeyError: + return False + + def isSubscribedFrom(self, entity, roster_owner_jid): + """Check if entity has presence subscription from roster_owner_jid + + @param entity(jid.JID): entity to check subscription to + @param roster_owner_jid(jid.JID): owner of the roster to check + @return D(bool): True if entity has a subscription from roster_owner_jid + """ + d = self.getRoster(roster_owner_jid) + d.addCallback(self._isSubscribedFrom, entity, roster_owner_jid) + return d + ## message ## def sendMessage(self, priv_message, to_jid=None): - """ Send privileged message (in the name of the server) + """Send privileged message (in the name of the server) @param priv_message(domish.Element): privileged message @param to_jid(jid.JID, None): main message destinee