Mercurial > prosody-modules
annotate mod_fallback_vcard/mod_fallback_vcard.lua @ 6083:ffd0184cd478
mod_compliance_latest: New module that depends on and therefore loads the latest compliance tester mod.
diff --git a/mod_compliance_latest/README.md b/mod_compliance_latest/README.md
new file mode 100644
--- /dev/null
+++ b/mod_compliance_latest/README.md
@@ -0,0 +1,25 @@
+---
+summary: XMPP Compliance Suites self-test
+labels:
+- Stage-Beta
+rockspec:
+ dependencies:
+ - mod_compliance_2023
+...
+
+# Introduction
+
+This module will always require and load to the lastest compliance tester we have in the community modules.
+Currently this is [mod_compliance_2023].
+
+# Configuration
+
+Just load this module as any other module and it will automatically install [mod_compliance_2023] if you use the Prosody plugin installer.
+See the linked module for further details.
+
+# Compatibility
+
+ Prosody-Version Status
+ --------------- ----------------------
+ trunk Works as of 2024-12-22
+ 0.12 Works
diff --git a/mod_compliance_latest/mod_compliance_latest.lua b/mod_compliance_latest/mod_compliance_latest.lua
new file mode 100644
--- /dev/null
+++ b/mod_compliance_latest/mod_compliance_latest.lua
@@ -0,0 +1,1 @@
+module:depends("compliance_2023");
| author | Menel <menel@snikket.de> |
|---|---|
| date | Sun, 22 Dec 2024 18:12:42 +0100 |
| parents | ceb594a14a18 |
| children |
| rev | line source |
|---|---|
|
1899
ceb594a14a18
mod_fallback_vcard: Generates missing vcards from a template
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
1 local datamanager = require "util.datamanager"; |
|
ceb594a14a18
mod_fallback_vcard: Generates missing vcards from a template
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
2 local usermanager = require "core.usermanager"; |
|
ceb594a14a18
mod_fallback_vcard: Generates missing vcards from a template
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
3 local st = require "util.stanza"; |
|
ceb594a14a18
mod_fallback_vcard: Generates missing vcards from a template
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
4 local host = module.host; |
|
ceb594a14a18
mod_fallback_vcard: Generates missing vcards from a template
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
5 local jid_split = require "util.jid".split; |
|
ceb594a14a18
mod_fallback_vcard: Generates missing vcards from a template
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
6 |
|
ceb594a14a18
mod_fallback_vcard: Generates missing vcards from a template
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
7 local orgname = module:get_option_string("default_vcard_orgname"); |
|
ceb594a14a18
mod_fallback_vcard: Generates missing vcards from a template
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
8 local orgmail = module:get_option_boolean("default_vcard_orgmail"); |
|
ceb594a14a18
mod_fallback_vcard: Generates missing vcards from a template
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
9 |
|
ceb594a14a18
mod_fallback_vcard: Generates missing vcards from a template
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
10 module:hook("iq/bare/vcard-temp:vCard", function(event) |
|
ceb594a14a18
mod_fallback_vcard: Generates missing vcards from a template
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
11 local session, stanza = event.origin, event.stanza; |
|
ceb594a14a18
mod_fallback_vcard: Generates missing vcards from a template
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
12 local to = stanza.attr.to; |
|
ceb594a14a18
mod_fallback_vcard: Generates missing vcards from a template
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
13 local username = jid_split(to); |
|
ceb594a14a18
mod_fallback_vcard: Generates missing vcards from a template
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
14 if not username then return end |
|
ceb594a14a18
mod_fallback_vcard: Generates missing vcards from a template
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
15 |
|
ceb594a14a18
mod_fallback_vcard: Generates missing vcards from a template
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
16 local vcard = datamanager.load(username, host, "vcard"); |
|
ceb594a14a18
mod_fallback_vcard: Generates missing vcards from a template
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
17 local data = datamanager.load(username, host, "account_details"); |
|
ceb594a14a18
mod_fallback_vcard: Generates missing vcards from a template
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
18 local exists = usermanager.user_exists(username, host); |
|
ceb594a14a18
mod_fallback_vcard: Generates missing vcards from a template
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
19 module:log("debug", "has %s: %s", "vcard", tostring(vcard)); |
|
ceb594a14a18
mod_fallback_vcard: Generates missing vcards from a template
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
20 module:log("debug", "has %s: %s", "data", tostring(data)); |
|
ceb594a14a18
mod_fallback_vcard: Generates missing vcards from a template
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
21 module:log("debug", "has %s: %s", "exists", tostring(exists)); |
|
ceb594a14a18
mod_fallback_vcard: Generates missing vcards from a template
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
22 data = data or {}; |
|
ceb594a14a18
mod_fallback_vcard: Generates missing vcards from a template
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
23 |
|
ceb594a14a18
mod_fallback_vcard: Generates missing vcards from a template
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
24 if not(vcard) and data and exists then |
|
ceb594a14a18
mod_fallback_vcard: Generates missing vcards from a template
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
25 -- MAYBE |
|
ceb594a14a18
mod_fallback_vcard: Generates missing vcards from a template
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
26 -- first .. " " .. last |
|
ceb594a14a18
mod_fallback_vcard: Generates missing vcards from a template
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
27 -- first, last = name:match("^(%w+) (%w+)$") |
|
ceb594a14a18
mod_fallback_vcard: Generates missing vcards from a template
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
28 local vcard = st.reply(stanza):tag("vCard", { xmlns = "vcard-temp" }) |
|
ceb594a14a18
mod_fallback_vcard: Generates missing vcards from a template
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
29 :tag("VERSION"):text("3.0"):up() |
|
ceb594a14a18
mod_fallback_vcard: Generates missing vcards from a template
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
30 :tag("N") |
|
ceb594a14a18
mod_fallback_vcard: Generates missing vcards from a template
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
31 :tag("FAMILY"):text(data.last or ""):up() |
|
ceb594a14a18
mod_fallback_vcard: Generates missing vcards from a template
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
32 :tag("GIVEN"):text(data.first or ""):up() |
|
ceb594a14a18
mod_fallback_vcard: Generates missing vcards from a template
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
33 :up() |
|
ceb594a14a18
mod_fallback_vcard: Generates missing vcards from a template
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
34 :tag("FN"):text(data.name or ""):up() |
|
ceb594a14a18
mod_fallback_vcard: Generates missing vcards from a template
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
35 :tag("NICKNAME"):text(data.nick or username):up() |
|
ceb594a14a18
mod_fallback_vcard: Generates missing vcards from a template
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
36 :tag("JABBERID"):text(username.."@"..host):up(); |
|
ceb594a14a18
mod_fallback_vcard: Generates missing vcards from a template
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
37 if orgmail then |
|
ceb594a14a18
mod_fallback_vcard: Generates missing vcards from a template
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
38 vcard:tag("EMAIL"):tag("USERID"):text(username.."@"..host):up():up(); |
|
ceb594a14a18
mod_fallback_vcard: Generates missing vcards from a template
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
39 elseif data.email then |
|
ceb594a14a18
mod_fallback_vcard: Generates missing vcards from a template
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
40 vcard:tag("EMAIL"):tag("USERID"):text(data.email):up():up(); |
|
ceb594a14a18
mod_fallback_vcard: Generates missing vcards from a template
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
41 end |
|
ceb594a14a18
mod_fallback_vcard: Generates missing vcards from a template
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
42 if orgname then |
|
ceb594a14a18
mod_fallback_vcard: Generates missing vcards from a template
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
43 vcard:tag("ORG"):tag("ORGNAME"):text(orgname):up():up(); |
|
ceb594a14a18
mod_fallback_vcard: Generates missing vcards from a template
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
44 end |
|
ceb594a14a18
mod_fallback_vcard: Generates missing vcards from a template
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
45 session.send(vcard); |
|
ceb594a14a18
mod_fallback_vcard: Generates missing vcards from a template
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
46 return true; |
|
ceb594a14a18
mod_fallback_vcard: Generates missing vcards from a template
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
47 end |
|
ceb594a14a18
mod_fallback_vcard: Generates missing vcards from a template
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
48 end, 1); |
