|
@@ -68845,7 +68845,9 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_
|
|
if (args.length > 1) {
|
|
if (args.length > 1) {
|
|
this.showErrorMessage(__(`Error: invalid number of arguments`));
|
|
this.showErrorMessage(__(`Error: invalid number of arguments`));
|
|
} else {
|
|
} else {
|
|
- this.model.registerNickname();
|
|
|
|
|
|
+ this.model.registerNickname().then(err_msg => {
|
|
|
|
+ if (err_msg) this.showErrorMessage(err_msg);
|
|
|
|
+ });
|
|
}
|
|
}
|
|
|
|
|
|
break;
|
|
break;
|
|
@@ -70151,7 +70153,7 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
},
|
|
},
|
|
|
|
|
|
async onConnectionStatusChanged() {
|
|
async onConnectionStatusChanged() {
|
|
- if (this.get('connection_status') === converse.ROOMSTATUS.ENTERED && _converse.auto_register_muc_nickname && this.get('reserved_nick')) {
|
|
|
|
|
|
+ if (this.get('connection_status') === converse.ROOMSTATUS.ENTERED && _converse.auto_register_muc_nickname && !this.get('reserved_nick')) {
|
|
const result = await _converse.api.disco.supports(Strophe.NS.MUC_REGISTER, this.get('jid'));
|
|
const result = await _converse.api.disco.supports(Strophe.NS.MUC_REGISTER, this.get('jid'));
|
|
|
|
|
|
if (result.length) {
|
|
if (result.length) {
|
|
@@ -70870,7 +70872,7 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
// See https://xmpp.org/extensions/xep-0045.html#register
|
|
// See https://xmpp.org/extensions/xep-0045.html#register
|
|
const nick = this.get('nick'),
|
|
const nick = this.get('nick'),
|
|
jid = this.get('jid');
|
|
jid = this.get('jid');
|
|
- let iq;
|
|
|
|
|
|
+ let iq, err_msg;
|
|
|
|
|
|
try {
|
|
try {
|
|
iq = await _converse.api.sendIQ($iq({
|
|
iq = await _converse.api.sendIQ($iq({
|
|
@@ -70881,13 +70883,15 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
'xmlns': Strophe.NS.MUC_REGISTER
|
|
'xmlns': Strophe.NS.MUC_REGISTER
|
|
}));
|
|
}));
|
|
} catch (e) {
|
|
} catch (e) {
|
|
- if (sizzle('item-not-found[xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"]', e).length) {
|
|
|
|
- _converse.log(`Can't register nickname ${nick} in the groupchat ${jid} which does not exist.`);
|
|
|
|
- } else if (sizzle('not-allowed[xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"]', e).length) {
|
|
|
|
- _converse.log(`You're not allowed to register in the groupchat ${jid}`);
|
|
|
|
|
|
+ if (sizzle('not-allowed[xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"]', e).length) {
|
|
|
|
+ err_msg = __("You're not allowed to register yourself in this groupchat.");
|
|
|
|
+ } else if (sizzle('registration-required[xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"]', e).length) {
|
|
|
|
+ err_msg = __("You're not allowed to register in this groupchat because it's members-only.");
|
|
}
|
|
}
|
|
|
|
|
|
- return _converse.log(e, Strophe.LogLevel.ERROR);
|
|
|
|
|
|
+ _converse.log(e, Strophe.LogLevel.ERROR);
|
|
|
|
+
|
|
|
|
+ return err_msg;
|
|
}
|
|
}
|
|
|
|
|
|
const required_fields = _.map(sizzle('field required', iq), 'parentElement');
|
|
const required_fields = _.map(sizzle('field required', iq), 'parentElement');
|
|
@@ -70912,15 +70916,17 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
'var': 'muc#register_roomnick'
|
|
'var': 'muc#register_roomnick'
|
|
}).c('value').t(nick));
|
|
}).c('value').t(nick));
|
|
} catch (e) {
|
|
} catch (e) {
|
|
- if (sizzle('conflict[xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"]', e).length) {
|
|
|
|
- _converse.log(`Can't register nickname ${nick} in the groupchat ${jid}, it's already taken.`);
|
|
|
|
- } else if (sizzle('service-unavailable[xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"]', e).length) {
|
|
|
|
- _converse.log(`Can't register nickname ${nick} in the groupchat ${jid}, it doesn't support registration.`);
|
|
|
|
|
|
+ if (sizzle('service-unavailable[xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"]', e).length) {
|
|
|
|
+ err_msg = __("Can't register your nickname in this groupchat, it doesn't support registration.");
|
|
} else if (sizzle('bad-request[xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"]', e).length) {
|
|
} else if (sizzle('bad-request[xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"]', e).length) {
|
|
- _converse.log(`Can't register nickname ${nick} in the groupchat ${jid}, invalid data form supplied.`);
|
|
|
|
|
|
+ err_msg = __("Can't register your nickname in this groupchat, invalid data form supplied.");
|
|
}
|
|
}
|
|
|
|
|
|
- return _converse.log(e, Strophe.LogLevel.ERROR);
|
|
|
|
|
|
+ _converse.log(err_msg);
|
|
|
|
+
|
|
|
|
+ _converse.log(e, Strophe.LogLevel.ERROR);
|
|
|
|
+
|
|
|
|
+ return err_msg;
|
|
}
|
|
}
|
|
},
|
|
},
|
|
|
|
|