aboutsummaryrefslogtreecommitdiffstats
path: root/plugins/mod_mam/mamprefs.lib.lua
diff options
context:
space:
mode:
authorKim Alvefur <zash@zash.se>2016-11-04 13:48:21 +0100
committerKim Alvefur <zash@zash.se>2016-11-04 13:48:21 +0100
commit0ff95b16160d80de3a43be87353ce30e58c86ec1 (patch)
tree86d200149f25a2f1a46d6e65498ca6c96de7f084 /plugins/mod_mam/mamprefs.lib.lua
parent0d28378a7ac1410c4d32b7e0415fdc646ce2a755 (diff)
downloadprosody-0ff95b16160d80de3a43be87353ce30e58c86ec1.tar.gz
prosody-0ff95b16160d80de3a43be87353ce30e58c86ec1.zip
mod_mam: Import from prosody-modules
Diffstat (limited to 'plugins/mod_mam/mamprefs.lib.lua')
-rw-r--r--plugins/mod_mam/mamprefs.lib.lua41
1 files changed, 41 insertions, 0 deletions
diff --git a/plugins/mod_mam/mamprefs.lib.lua b/plugins/mod_mam/mamprefs.lib.lua
new file mode 100644
index 00000000..98e74bd6
--- /dev/null
+++ b/plugins/mod_mam/mamprefs.lib.lua
@@ -0,0 +1,41 @@
+-- XEP-0313: Message Archive Management for Prosody
+-- Copyright (C) 2011-2013 Kim Alvefur
+--
+-- This file is MIT/X11 licensed.
+
+local global_default_policy = module:get_option("default_archive_policy", true);
+
+do
+ local prefs_format = {
+ [false] = "roster",
+ -- default ::= true | false | "roster"
+ -- true = always, false = never, nil = global default
+ ["romeo@montague.net"] = true, -- always
+ ["montague@montague.net"] = false, -- newer
+ };
+end
+
+local sessions = hosts[module.host].sessions;
+local prefs = module:open_store("archive2_prefs");
+
+local function get_prefs(user)
+ local user_sessions = sessions[user];
+ local user_prefs = user_sessions and user_sessions.archive_prefs
+ if not user_prefs and user_sessions then
+ user_prefs = prefs:get(user);
+ user_sessions.archive_prefs = user_prefs;
+ end
+ return user_prefs or { [false] = global_default_policy };
+end
+local function set_prefs(user, user_prefs)
+ local user_sessions = sessions[user];
+ if user_sessions then
+ user_sessions.archive_prefs = user_prefs;
+ end
+ return prefs:set(user, user_prefs);
+end
+
+return {
+ get = get_prefs,
+ set = set_prefs,
+}