plugin XEP-0277, group blog: added item2data trigger + group permission are parsed when receiving a new item
This commit is contained in:
parent
57d47b8e61
commit
6724b696bc
2 changed files with 14 additions and 0 deletions
|
|
@ -131,6 +131,7 @@ class GroupBlog(object):
|
|||
# async=True)
|
||||
|
||||
# host.trigger.add("PubSubItemsReceived", self.pubSubItemsReceivedTrigger)
|
||||
host.trigger.add("XEP-0277_item2data", self._item2dataTrigger)
|
||||
host.trigger.add("XEP-0277_data2entry", self._data2entryTrigger)
|
||||
host.trigger.add("XEP-0277_comments", self._commentsTrigger)
|
||||
|
||||
|
|
@ -165,6 +166,15 @@ class GroupBlog(object):
|
|||
log.error("Service should be available !")
|
||||
return {}
|
||||
|
||||
def _item2dataTrigger(self, item_elt, entry_elt, microblog_data):
|
||||
"""Parse item to find group permission elements"""
|
||||
config_form = data_form.findForm(item_elt, NS_PUBSUB_ITEM_CONFIG)
|
||||
if config_form is None:
|
||||
return
|
||||
access_model = config_form.get(self._p.OPT_ACCESS_MODEL, self._p.ACCESS_OPEN)
|
||||
if access_model == self._p.ACCESS_ROSTER:
|
||||
common.iter2dict('group', config_form.fields[self._p.OPT_ROSTER_GROUPS_ALLOWED].values, microblog_data)
|
||||
|
||||
def _data2entryTrigger(self, client, mb_data, entry_elt, item_elt):
|
||||
"""Build fine access permission if needed
|
||||
|
||||
|
|
|
|||
|
|
@ -319,6 +319,10 @@ class XEP_0277(object):
|
|||
categories = (category_elt.getAttribute('term','') for category_elt in entry_elt.elements(NS_ATOM, 'category'))
|
||||
common.iter2dict('tag', categories, microblog_data)
|
||||
|
||||
## the trigger ##
|
||||
# if other plugins have things to add or change
|
||||
yield self.host.trigger.point("XEP-0277_item2data", item_elt, entry_elt, microblog_data)
|
||||
|
||||
defer.returnValue(microblog_data)
|
||||
|
||||
@defer.inlineCallbacks
|
||||
|
|
|
|||
Loading…
Reference in a new issue