Annotate

mod_saslname/mod_saslname.lua @ 5170:4d6af8950016

mod_muc_moderation: Derive role from reserved nickname if occupant When using a different client to moderate than the one used to participate in the chat, e.g. a command line tool like clix, there's no occupant and no role to use in the permission check. Previously the default role based on affiliation was used. Now if you are present in the room using your reserved nick, the role you have there is used in the permission check instead of the default affiliation-derived role.
author Kim Alvefur <zash@zash.se>
date Sun, 19 Feb 2023 18:17:37 +0100
parent 1271:e927d95512e8
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1271
e927d95512e8 mod_saslname: XEP-0233 implementation
Kim Alvefur <zash@zash.se>
parents:
diff changeset
1 local hostname = module:get_option_string("sasl_hostname", module.host);
e927d95512e8 mod_saslname: XEP-0233 implementation
Kim Alvefur <zash@zash.se>
parents:
diff changeset
2
e927d95512e8 mod_saslname: XEP-0233 implementation
Kim Alvefur <zash@zash.se>
parents:
diff changeset
3 module:hook("stream-features", function(event)
e927d95512e8 mod_saslname: XEP-0233 implementation
Kim Alvefur <zash@zash.se>
parents:
diff changeset
4 local features = event.features;
e927d95512e8 mod_saslname: XEP-0233 implementation
Kim Alvefur <zash@zash.se>
parents:
diff changeset
5 local mechs = features:get_child("mechanisms", "urn:ietf:params:xml:ns:xmpp-sasl");
e927d95512e8 mod_saslname: XEP-0233 implementation
Kim Alvefur <zash@zash.se>
parents:
diff changeset
6 if mechs then
e927d95512e8 mod_saslname: XEP-0233 implementation
Kim Alvefur <zash@zash.se>
parents:
diff changeset
7 mechs:tag("hostname", { xmlns = "urn:xmpp:domain-based-name:1" })
e927d95512e8 mod_saslname: XEP-0233 implementation
Kim Alvefur <zash@zash.se>
parents:
diff changeset
8 :text(hostname):up();
e927d95512e8 mod_saslname: XEP-0233 implementation
Kim Alvefur <zash@zash.se>
parents:
diff changeset
9 end
e927d95512e8 mod_saslname: XEP-0233 implementation
Kim Alvefur <zash@zash.se>
parents:
diff changeset
10 end);