Mercurial > prosody-hg
comparison plugins/mod_mam/mamprefs.lib.lua @ 7836:30fac9154fd4
mod_mam: Import from prosody-modules
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Fri, 04 Nov 2016 13:48:21 +0100 |
| parents | |
| children | 10d91860172f |
comparison
equal
deleted
inserted
replaced
| 7835:a809dcfd0c5b | 7836:30fac9154fd4 |
|---|---|
| 1 -- XEP-0313: Message Archive Management for Prosody | |
| 2 -- Copyright (C) 2011-2013 Kim Alvefur | |
| 3 -- | |
| 4 -- This file is MIT/X11 licensed. | |
| 5 | |
| 6 local global_default_policy = module:get_option("default_archive_policy", true); | |
| 7 | |
| 8 do | |
| 9 local prefs_format = { | |
| 10 [false] = "roster", | |
| 11 -- default ::= true | false | "roster" | |
| 12 -- true = always, false = never, nil = global default | |
| 13 ["romeo@montague.net"] = true, -- always | |
| 14 ["montague@montague.net"] = false, -- newer | |
| 15 }; | |
| 16 end | |
| 17 | |
| 18 local sessions = hosts[module.host].sessions; | |
| 19 local prefs = module:open_store("archive2_prefs"); | |
| 20 | |
| 21 local function get_prefs(user) | |
| 22 local user_sessions = sessions[user]; | |
| 23 local user_prefs = user_sessions and user_sessions.archive_prefs | |
| 24 if not user_prefs and user_sessions then | |
| 25 user_prefs = prefs:get(user); | |
| 26 user_sessions.archive_prefs = user_prefs; | |
| 27 end | |
| 28 return user_prefs or { [false] = global_default_policy }; | |
| 29 end | |
| 30 local function set_prefs(user, user_prefs) | |
| 31 local user_sessions = sessions[user]; | |
| 32 if user_sessions then | |
| 33 user_sessions.archive_prefs = user_prefs; | |
| 34 end | |
| 35 return prefs:set(user, user_prefs); | |
| 36 end | |
| 37 | |
| 38 return { | |
| 39 get = get_prefs, | |
| 40 set = set_prefs, | |
| 41 } |
