view mod_csi_compat/mod_csi_compat.lua @ 5448:9d542e86e19a

mod_http_oauth2: Allow requesting a subset of scopes on token refresh This enables clients to request access tokens with fewer permissions than the grant they were given, reducing impact of token leak. Clients could e.g. request access tokens with some privileges and immediately revoke them after use, or other strategies.
author Kim Alvefur <zash@zash.se>
date Thu, 11 May 2023 21:40:09 +0200
parents db8b256f51ff
children
line wrap: on
line source

local st = require "util.stanza";

module:depends("csi");

module:add_feature("google:queue");

module:hook("iq-set/self/google:queue:query", function(event)
	local origin, stanza = event.origin, event.stanza;
	(origin.log or module._log)("debug", "Google queue invoked (CSI compat mode)")
	local payload = stanza:get_child("query", "google:queue");
	if payload:get_child("enable") then
		module:fire_event("csi-client-inactive", event);
	elseif payload:get_child("disable") then
		module:fire_event("csi-client-active", event);
	end
	-- <flush/> is implemented as a noop, any IQ stanza would flush the queue anyways.
	origin.send(st.reply(stanza));
	return true;
end, 10);