comparison src/plugins/plugin_misc_groupblog.py @ 2201:40dd9eb2692c

plugin groupblog, XEP-0060: added ACCESS_PUBLISHER_ROSTER and switched to it in groupblog
author Goffi <goffi@goffi.org>
date Thu, 23 Mar 2017 09:11:25 +0100
parents a543eda2c923
children 8b37a62336c3
comparison
equal deleted inserted replaced
2200:95dc90f1065a 2201:40dd9eb2692c
97 """Parse item to find group permission elements""" 97 """Parse item to find group permission elements"""
98 config_form = data_form.findForm(item_elt, NS_PUBSUB_ITEM_CONFIG) 98 config_form = data_form.findForm(item_elt, NS_PUBSUB_ITEM_CONFIG)
99 if config_form is None: 99 if config_form is None:
100 return 100 return
101 access_model = config_form.get(self._p.OPT_ACCESS_MODEL, self._p.ACCESS_OPEN) 101 access_model = config_form.get(self._p.OPT_ACCESS_MODEL, self._p.ACCESS_OPEN)
102 # FIXME: ACCESS_ROSTER need to be changed to a new ACCESS_PUBLISHER_ROSTER when available 102 if access_model == self._p.ACCESS_PUBLISHER_ROSTER:
103 if access_model == self._p.ACCESS_ROSTER:
104 data_format.iter2dict('group', config_form.fields[self._p.OPT_ROSTER_GROUPS_ALLOWED].values, microblog_data) 103 data_format.iter2dict('group', config_form.fields[self._p.OPT_ROSTER_GROUPS_ALLOWED].values, microblog_data)
105 104
106 def _data2entryTrigger(self, client, mb_data, entry_elt, item_elt): 105 def _data2entryTrigger(self, client, mb_data, entry_elt, item_elt):
107 """Build fine access permission if needed 106 """Build fine access permission if needed
108 107
114 return 113 return
115 if not client.server_groupblog_available: 114 if not client.server_groupblog_available:
116 raise exceptions.CancelError(u"GroupBlog is not available") 115 raise exceptions.CancelError(u"GroupBlog is not available")
117 log.debug(u"This entry use group blog") 116 log.debug(u"This entry use group blog")
118 form = data_form.Form('submit', formNamespace=NS_PUBSUB_ITEM_CONFIG) 117 form = data_form.Form('submit', formNamespace=NS_PUBSUB_ITEM_CONFIG)
119 # FIXME: ACCESS_ROSTER need to be changed to a new ACCESS_PUBLISHER_ROSTER when available 118 access = data_form.Field(None, self._p.OPT_ACCESS_MODEL, value=self._p.ACCESS_PUBLISHER_ROSTER)
120 access = data_form.Field(None, self._p.OPT_ACCESS_MODEL, value=self._p.ACCESS_ROSTER)
121 allowed = data_form.Field(None, self._p.OPT_ROSTER_GROUPS_ALLOWED, values=groups) 119 allowed = data_form.Field(None, self._p.OPT_ROSTER_GROUPS_ALLOWED, values=groups)
122 form.addField(access) 120 form.addField(access)
123 form.addField(allowed) 121 form.addField(allowed)
124 item_elt.addChild(form.toElement()) 122 item_elt.addChild(form.toElement())
125 123
127 """This method is called when a comments node is about to be created 125 """This method is called when a comments node is about to be created
128 126
129 It changes the access mode to roster if needed, and give the authorized groups 127 It changes the access mode to roster if needed, and give the authorized groups
130 """ 128 """
131 if "group" in mb_data: 129 if "group" in mb_data:
132 # FIXME: ACCESS_ROSTER need to be changed to a new ACCESS_PUBLISHER_ROSTER when available 130 options[self._p.OPT_ACCESS_MODEL] = self._p.ACCESS_PUBLISHER_ROSTER
133 options[self._p.OPT_ACCESS_MODEL] = self._p.ACCESS_ROSTER
134 options[self._p.OPT_ROSTER_GROUPS_ALLOWED] = list(data_format.dict2iter('group', mb_data)) 131 options[self._p.OPT_ROSTER_GROUPS_ALLOWED] = list(data_format.dict2iter('group', mb_data))
135 132
136 133
137 class GroupBlog_handler(XMPPHandler): 134 class GroupBlog_handler(XMPPHandler):
138 implements(iwokkel.IDisco) 135 implements(iwokkel.IDisco)