Mercurial > prosody-modules
annotate mod_vcard_command/mod_vcard_command.lua @ 6082:1a6cd0bbb7ab
mod_compliance_2023: Add 2023 Version of the compliance module, basis is the 2021 Version.
diff --git a/mod_compliance_2023/README.md b/mod_compliance_2023/README.md
new file mode 100644
--- /dev/null
+++ b/mod_compliance_2023/README.md
@@ -0,0 +1,22 @@
+---
+summary: XMPP Compliance Suites 2023 self-test
+labels:
+- Stage-Beta
+rockspec:
+ dependencies:
+ - mod_cloud_notify
+
+...
+
+Compare the list of enabled modules with
+[XEP-0479: XMPP Compliance Suites 2023] and produce basic report to the
+Prosody log file.
+
+If installed with the Prosody plugin installer then all modules needed for a green checkmark should be included. (With prosody 0.12 only [mod_cloud_notify] is not included with prosody and we need the community module)
+
+# Compatibility
+
+ Prosody-Version Status
+ --------------- ----------------------
+ trunk Works as of 2024-12-21
+ 0.12 Works
diff --git a/mod_compliance_2023/mod_compliance_2023.lua b/mod_compliance_2023/mod_compliance_2023.lua
new file mode 100644
--- /dev/null
+++ b/mod_compliance_2023/mod_compliance_2023.lua
@@ -0,0 +1,79 @@
+-- Copyright (c) 2021 Kim Alvefur
+--
+-- This module is MIT licensed.
+
+local hostmanager = require "core.hostmanager";
+
+local array = require "util.array";
+local set = require "util.set";
+
+local modules_enabled = module:get_option_inherited_set("modules_enabled");
+
+for host in pairs(hostmanager.get_children(module.host)) do
+ local component = module:context(host):get_option_string("component_module");
+ if component then
+ modules_enabled:add(component);
+ modules_enabled:include(module:context(host):get_option_set("modules_enabled", {}));
+ end
+end
+
+local function check(suggested, alternate, ...)
+ if set.intersection(modules_enabled, set.new({suggested; alternate; ...})):empty() then return suggested; end
+ return false;
+end
+
+local compliance = {
+ array {"Server"; check("tls"); check("disco")};
+
+ array {"Advanced Server"; check("pep", "pep_simple")};
+
+ array {"Web"; check("bosh"); check("websocket")};
+
+ -- No Server requirements for Advanced Web
+
+ array {"IM"; check("vcard_legacy", "vcard"); check("carbons"); check("http_file_share", "http_upload")};
+
+ array {
+ "Advanced IM";
+ check("vcard_legacy", "vcard");
+ check("blocklist");
+ check("muc");
+ check("private");
+ check("smacks");
+ check("mam");
+ check("bookmarks");
+ };
+
+ array {"Mobile"; check("smacks"); check("csi_simple", "csi_battery_saver")};
+
+ array {"Advanced Mobile"; check("cloud_notify")};
+
+ array {"A/V Calling"; check("turn_external", "external_services", "turncredentials", "extdisco")};
+
+};
+
+function check_compliance()
+ local compliant = true;
+ for _, suite in ipairs(compliance) do
+ local section = suite:pop(1);
+ if module:get_option_boolean("compliance_" .. section:lower():gsub("%A", "_"), true) then
+ local missing = set.new(suite:filter(function(m) return type(m) == "string" end):map(function(m) return "mod_" .. m end));
+ if suite[1] then
+ if compliant then
+ compliant = false;
+ module:log("warn", "Missing some modules for XMPP Compliance 2023");
+ end
+ module:log("info", "%s Compliance: %s", section, missing);
+ end
+ end
+ end
+
+ if compliant then module:log("info", "XMPP Compliance 2023: Compliant ✔️"); end
+end
+
+if prosody.start_time then
+ check_compliance()
+else
+ module:hook_global("server-started", check_compliance);
+end
+
| author | Menel <menel@snikket.de> |
|---|---|
| date | Sun, 22 Dec 2024 16:06:28 +0100 |
| parents | b2c9b832612b |
| children |
| rev | line source |
|---|---|
|
3025
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
1 ----------------------------------------------------------- |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
2 -- mod_vcard_command: Manage vcards through prosodyctl |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
3 -- version 0.02 |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
4 ----------------------------------------------------------- |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
5 -- Copyright (C) 2013 Stefan `Sec` Zehl |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
6 -- |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
7 -- This project is MIT/X11 licensed. Please see the |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
8 -- COPYING file in the source package for more information. |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
9 ----------------------------------------------------------- |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
10 |
|
3026
b2c9b832612b
mod_vcard_command: Tweak to not rely on legacy module() behavior
Kim Alvefur <zash@zash.se>
parents:
3025
diff
changeset
|
11 function module.load() |
|
3025
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
12 module:log("error", "Do not load this module in Prosody"); |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
13 module.host = "*"; |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
14 return; |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
15 end |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
16 |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
17 |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
18 -- Workaround for lack of util.startup... |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
19 _G.bare_sessions = _G.bare_sessions or {}; |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
20 |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
21 local storagemanager = require "core.storagemanager"; |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
22 local datamanager = require "util.datamanager"; |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
23 local xml = require "util.xml"; |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
24 local jid = require "util.jid"; |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
25 local warn = prosodyctl.show_warning; |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
26 local st = require "util.stanza" |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
27 -- local vcards = module:open_store("vcard"); |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
28 |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
29 -- Print anything - including nested tables |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
30 function table_print (tt, indent, done) |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
31 done = done or {} |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
32 indent = indent or 0 |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
33 if type(tt) == "table" then |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
34 for key, value in pairs (tt) do |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
35 io.write(string.rep (" ", indent)) -- indent it |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
36 if type (value) == "table" and not done [value] then |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
37 done [value] = true |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
38 io.write(string.format("[%s] => table\n", tostring (key))); |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
39 io.write(string.rep (" ", indent+4)) -- indent it |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
40 io.write("(\n"); |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
41 table_print (value, indent + 7, done) |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
42 io.write(string.rep (" ", indent+4)) -- indent it |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
43 io.write(")\n"); |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
44 else |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
45 io.write(string.format("[%s] => %s\n", |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
46 tostring (key), tostring(value))) |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
47 end |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
48 end |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
49 else |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
50 io.write(tt .. "\n") |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
51 end |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
52 end |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
53 |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
54 -- Make a *one-way* subscription. User will see when contact is online, |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
55 -- contact will not see when user is online. |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
56 function vcard_get(user_jid) |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
57 local user_username, user_host = jid.split(user_jid); |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
58 if not hosts[user_host] then |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
59 warn("The host '%s' is not configured for this server.", user_host); |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
60 return; |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
61 end |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
62 storagemanager.initialize_host(user_host); |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
63 local vCard; |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
64 vCard = st.deserialize(datamanager.load(user_username, user_host, "vcard")); |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
65 if vCard then |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
66 print(vCard); |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
67 else |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
68 warn("The user '%s' has no vCard configured.",user_jid); |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
69 end |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
70 end |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
71 |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
72 function vcard_set(user_jid, file) |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
73 local user_username, user_host = jid.split(user_jid); |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
74 if not hosts[user_host] then |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
75 warn("The host '%s' is not configured for this server.", user_host); |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
76 return; |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
77 end |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
78 storagemanager.initialize_host(user_host); |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
79 local f = io.input(file); |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
80 local xmldata=io.read("*all"); |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
81 io.close(f); |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
82 |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
83 local vCard=st.preserialize(xml.parse(xmldata)); |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
84 |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
85 if vCard then |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
86 datamanager.store(user_username, user_host, "vcard", vCard); |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
87 else |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
88 warn("Could not parse the file."); |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
89 end |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
90 end |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
91 |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
92 function vcard_delete(user_jid) |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
93 local user_username, user_host = jid.split(user_jid); |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
94 if not hosts[user_host] then |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
95 warn("The host '%s' is not configured for this server.", user_host); |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
96 return; |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
97 end |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
98 storagemanager.initialize_host(user_host); |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
99 datamanager.store(user_username, user_host, "vcard", nil); |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
100 end |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
101 |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
102 function module.command(arg) |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
103 local command = arg[1]; |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
104 if not command then |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
105 warn("Valid subcommands: get | set | delete "); |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
106 return 0; |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
107 end |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
108 table.remove(arg, 1); |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
109 if command == "get" then |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
110 vcard_get(arg[1]); |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
111 return 0; |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
112 elseif command == "set" then |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
113 vcard_set(arg[1], arg[2]); |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
114 return 0; |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
115 elseif command == "delete" then |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
116 vcard_delete(arg[1]); |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
117 return 0; |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
118 else |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
119 warn("Unknown command: %s", command); |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
120 return 1; |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
121 end |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
122 return 0; |
|
5b8983e100da
mod_vcard_command: a simplistic way to get and set vcard data for registered users
Stefan `Sec` Zehl <sec@42.org>
parents:
diff
changeset
|
123 end |
