Philipp Hörist pushed to branch master at gajim / gajim
Commits:
c5f8fe91 by Philipp Hörist at 2018-06-01T20:02:29+02:00
Disable subject change if room doesnt allow it
- - - - -
3 changed files:
- gajim/common/caps_cache.py
- gajim/common/connection_handlers.py
- gajim/groupchat_control.py
Changes:
=====================================
gajim/common/caps_cache.py
=====================================
--- a/gajim/common/caps_cache.py
+++ b/gajim/common/caps_cache.py
@@ -449,7 +449,8 @@ class MucCapsCache:
features.append(child.getAttr('var'))
elif child.getName() == 'x':
if child.getNamespace() == nbxmpp.NS_DATA:
- data.append(nbxmpp.DataForm(node=child))
+ from gajim.common import dataforms
+ data.append(dataforms.ExtendForm(node=child))
if nbxmpp.NS_MUC not in features:
# Not a MUC, dont cache info
@@ -483,3 +484,16 @@ class MucCapsCache:
return nbxmpp.NS_MAM_1
except (KeyError, AttributeError):
return
+
+ def is_subject_change_allowed(self, jid, affiliation):
+ allowed = True
+ if affiliation in ('owner, admin'):
+ return allowed
+
+ if jid in self.cache:
+ for form in self.cache[jid].data:
+ try:
+ allowed = form['muc#roominfo_changesubject'].value
+ except KeyError:
+ pass
+ return allowed
=====================================
gajim/common/connection_handlers.py
=====================================
--- a/gajim/common/connection_handlers.py
+++ b/gajim/common/connection_handlers.py
@@ -101,8 +101,8 @@ class ConnectionDisco:
id_ = self._discover(nbxmpp.NS_DISCO_INFO, jid, node, id_prefix)
self.disco_info_ids.append(id_)
- def discoverMUC(self, jid, callback):
- if muc_caps_cache.is_cached(jid):
+ def discoverMUC(self, jid, callback, update=False):
+ if muc_caps_cache.is_cached(jid) and not update:
callback()
return
disco_info = nbxmpp.Iq(typ='get', to=jid, queryNS=nbxmpp.NS_DISCO_INFO)
=====================================
gajim/groupchat_control.py
=====================================
--- a/gajim/groupchat_control.py
+++ b/gajim/groupchat_control.py
@@ -603,9 +603,12 @@ class GroupchatControl(ChatControlBase):
online and role == 'visitor')
# Change Subject
- # Get this from Room Disco
+ subject = False
+ if contact is not None:
+ subject = muc_caps_cache.is_subject_change_allowed(
+ self.room_jid, contact.affiliation)
win.lookup_action('change-subject-' + self.control_id).set_enabled(
- online)
+ online and subject)
# Change Nick
win.lookup_action('change-nick-' + self.control_id).set_enabled(
@@ -1521,7 +1524,9 @@ class GroupchatControl(ChatControlBase):
changes.append(_('Room now does not show unavailable members'))
if '104' in obj.status_code:
changes.append(_('A setting not related to privacy has been '
- 'changed'))
+ 'changed'))
+ app.connections[self.account].discoverMUC(
+ self.room_jid, self.update_actions, update=True)
if '170' in obj.status_code:
# Can be a presence (see chg_contact_status in groupchat_control.py)
changes.append(_('Room logging is now enabled'))
View it on GitLab: https://dev.gajim.org/gajim/gajim/commit/c5f8fe915a6328bd01963793d6aaf96f20…
---
View it on GitLab: https://dev.gajim.org/gajim/gajim/commit/c5f8fe915a6328bd01963793d6aaf96f20…
You're receiving this email because of your account on dev.gajim.org.
Philipp Hörist pushed to branch master at gajim / gajim
Commits:
77fb424c by Sophie Herold at 2018-06-01T18:51:29+02:00
Fixes notifications are missing after refactoring
- - - - -
1 changed file:
- gajim/notify.py
Changes:
=====================================
gajim/notify.py
=====================================
--- a/gajim/notify.py
+++ b/gajim/notify.py
@@ -125,7 +125,7 @@ class Notification:
app.interface.roster.popup_notification_windows.append(instance)
return
- scale = app.get_monitor_scale_factor()
+ scale = gtkgui_helpers.get_monitor_scale_factor()
icon_pixbuf = gtkgui_helpers.gtk_icon_theme.load_icon_for_scale(
icon_name, 48, scale, 0)
View it on GitLab: https://dev.gajim.org/gajim/gajim/commit/77fb424cb001026cbf2f45d953dd7acf78…
---
View it on GitLab: https://dev.gajim.org/gajim/gajim/commit/77fb424cb001026cbf2f45d953dd7acf78…
You're receiving this email because of your account on dev.gajim.org.
Philipp Hörist pushed to branch master at gajim / gajim
Commits:
2abbb1e2 by Philipp Hörist at 2018-06-01T17:46:54+02:00
Define JID type when searching for duplciates
Fixes #9163
- - - - -
1 changed file:
- gajim/common/logger.py
Changes:
=====================================
gajim/common/logger.py
=====================================
--- a/gajim/common/logger.py
+++ b/gajim/common/logger.py
@@ -1287,7 +1287,11 @@ class Logger:
if not ids:
return False
- archive_id = self.get_jid_id(archive_jid)
+ type_ = JIDConstant.NORMAL_TYPE
+ if groupchat:
+ type_ = JIDConstant.ROOM_TYPE
+
+ archive_id = self.get_jid_id(archive_jid, type_=type_)
account_id = self.get_account_id(account)
if groupchat:
View it on GitLab: https://dev.gajim.org/gajim/gajim/commit/2abbb1e22409e9b4fdc4a1b740f155f756…
---
View it on GitLab: https://dev.gajim.org/gajim/gajim/commit/2abbb1e22409e9b4fdc4a1b740f155f756…
You're receiving this email because of your account on dev.gajim.org.