annotate mod_compat_vcard/mod_compat_vcard.lua @ 4983:7c77058a1ac5

mod_compat_roles: New module providing compat shim for trunk's new role API The new role API is translated to is_admin() calls on older versions. On newer versions (which have the role API) this module does nothing. It allows modules to drop their use of is_admin() (which is not available in trunk) and switch to the new role API, while remaining compatible with previous Prosody versions.
author Matthew Wild <mwild1@gmail.com>
date Thu, 11 Aug 2022 17:49:33 +0100
parents 3df303543765
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
749
1a7cdc874b8c mod_compat_vcard: Handle vcard requests sent to full JIDs (a spec violation commited by older versions of ejabberd and possibly others) - replaces vcard_compatibility option from Prosody 0.8
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1 -- Compatibility with clients and servers (i.e. ejabberd) that send vcard
1a7cdc874b8c mod_compat_vcard: Handle vcard requests sent to full JIDs (a spec violation commited by older versions of ejabberd and possibly others) - replaces vcard_compatibility option from Prosody 0.8
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2 -- requests to the full JID
1a7cdc874b8c mod_compat_vcard: Handle vcard requests sent to full JIDs (a spec violation commited by older versions of ejabberd and possibly others) - replaces vcard_compatibility option from Prosody 0.8
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3 --
1a7cdc874b8c mod_compat_vcard: Handle vcard requests sent to full JIDs (a spec violation commited by older versions of ejabberd and possibly others) - replaces vcard_compatibility option from Prosody 0.8
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
4 -- https://support.process-one.net/browse/EJAB-1045
1a7cdc874b8c mod_compat_vcard: Handle vcard requests sent to full JIDs (a spec violation commited by older versions of ejabberd and possibly others) - replaces vcard_compatibility option from Prosody 0.8
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
5
1a7cdc874b8c mod_compat_vcard: Handle vcard requests sent to full JIDs (a spec violation commited by older versions of ejabberd and possibly others) - replaces vcard_compatibility option from Prosody 0.8
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
6 local jid_bare = require "util.jid".bare;
1a7cdc874b8c mod_compat_vcard: Handle vcard requests sent to full JIDs (a spec violation commited by older versions of ejabberd and possibly others) - replaces vcard_compatibility option from Prosody 0.8
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
7 local st = require "util.stanza";
1a7cdc874b8c mod_compat_vcard: Handle vcard requests sent to full JIDs (a spec violation commited by older versions of ejabberd and possibly others) - replaces vcard_compatibility option from Prosody 0.8
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
8 local core_process_stanza = prosody.core_process_stanza;
1a7cdc874b8c mod_compat_vcard: Handle vcard requests sent to full JIDs (a spec violation commited by older versions of ejabberd and possibly others) - replaces vcard_compatibility option from Prosody 0.8
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
9
1a7cdc874b8c mod_compat_vcard: Handle vcard requests sent to full JIDs (a spec violation commited by older versions of ejabberd and possibly others) - replaces vcard_compatibility option from Prosody 0.8
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
10 module:hook("iq/full", function(event)
1a7cdc874b8c mod_compat_vcard: Handle vcard requests sent to full JIDs (a spec violation commited by older versions of ejabberd and possibly others) - replaces vcard_compatibility option from Prosody 0.8
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
11 local stanza = event.stanza;
1a7cdc874b8c mod_compat_vcard: Handle vcard requests sent to full JIDs (a spec violation commited by older versions of ejabberd and possibly others) - replaces vcard_compatibility option from Prosody 0.8
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
12 local payload = stanza.tags[1];
1297
3df303543765 mod_compat_vcard: Fix traceback from probably empty stanzas (Thanks Biszkopcik)
Kim Alvefur <zash@zash.se>
parents: 749
diff changeset
13 if payload and stanza.attr.type == "get" and payload.name == "vCard" and payload.attr.xmlns == "vcard-temp" then
749
1a7cdc874b8c mod_compat_vcard: Handle vcard requests sent to full JIDs (a spec violation commited by older versions of ejabberd and possibly others) - replaces vcard_compatibility option from Prosody 0.8
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
14 local fixed_stanza = st.clone(event.stanza);
1a7cdc874b8c mod_compat_vcard: Handle vcard requests sent to full JIDs (a spec violation commited by older versions of ejabberd and possibly others) - replaces vcard_compatibility option from Prosody 0.8
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
15 fixed_stanza.attr.to = jid_bare(stanza.attr.to);
1a7cdc874b8c mod_compat_vcard: Handle vcard requests sent to full JIDs (a spec violation commited by older versions of ejabberd and possibly others) - replaces vcard_compatibility option from Prosody 0.8
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
16 core_process_stanza(event.origin, fixed_stanza);
1a7cdc874b8c mod_compat_vcard: Handle vcard requests sent to full JIDs (a spec violation commited by older versions of ejabberd and possibly others) - replaces vcard_compatibility option from Prosody 0.8
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
17 return true;
1a7cdc874b8c mod_compat_vcard: Handle vcard requests sent to full JIDs (a spec violation commited by older versions of ejabberd and possibly others) - replaces vcard_compatibility option from Prosody 0.8
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
18 end
1a7cdc874b8c mod_compat_vcard: Handle vcard requests sent to full JIDs (a spec violation commited by older versions of ejabberd and possibly others) - replaces vcard_compatibility option from Prosody 0.8
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
19 end, 1);