blob: 98e74bd6ed80b08df3502102ad1c8a7d9c69ac8d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
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,
}
|