Software /
code /
prosody
Diff
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 |
child | 7850:10d91860172f |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/plugins/mod_mam/mamprefs.lib.lua Fri Nov 04 13:48:21 2016 +0100 @@ -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, +}