Mercurial > prosody-modules
view mod_default_vcard/mod_default_vcard.lua @ 4340:7cd3b7ec59e9
mod_http_oauth2: Rudimentary support for scopes (but not really)
We don't support limiting access, but this change will inform the
client what permissions the created token has (e.g. is the user an
admin or not).
There is some work in progress on real scope support.
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Sat, 16 Jan 2021 19:47:22 +0000 |
parents | 7236cdec3ea1 |
children |
line wrap: on
line source
local datamanager = require "util.datamanager"; local st = require "util.stanza"; local host = module.host; module:hook("user-registered", function(event) local username = event.username; local data = datamanager.load(username, host, "account_details"); local vcard = datamanager.load(username, host, "vcard"); --module:log("debug", "Has account details: %s", data and "yes" or "no"); --module:log("debug", "Has vCard: %s", vcard and "yes" or "no"); if data and not vcard then local name, first, last = data.name, data.first, data.last; if not name and (first and last) then name = first .. " " .. last; elseif name and not (first and last) then first, last = name:match("^(%w+)%s+(%w+)$") end local vcard = st.stanza("vCard", { xmlns = "vcard-temp" }) :tag("VERSION"):text("3.0"):up(); if first or last then vcard:tag("N") :tag("FAMILY"):text(last or ""):up() :tag("GIVEN"):text(first or ""):up() :up() end if name then vcard:tag("FN"):text(name or ""):up() end vcard:tag("NICKNAME"):text(data.nick or username):up(); if data.email then vcard:tag("EMAIL"):tag("USERID"):text(data.email):up():up(); end local ok, err = datamanager.store(username, host, "vcard", st.preserialize(vcard)); if not ok then module:log("error", "Couldn't save vCard data, %s", err); end end end);