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