view mod_invites_groups/mod_invites_groups.lua @ 5390:f2363e6d9a64

mod_http_oauth2: Advertise the currently supported id_token signing algorithm This field is REQUIRED. The algorithm RS256 MUST be included, but isn't because we don't implement it, as that would require implementing a pile of additional cryptography and JWT stuff. Instead the id_token is signed using the client secret, which allows verification by the client, since it's a shared secret per OpenID Connect Core 1.0 ยง 10.1 under Symmetric Signatures. OpenID Connect Discovery 1.0 has a lot of REQUIRED and MUST clauses that are not supported here, but that's okay because this is served from the RFC 8414 OAuth 2.0 Authorization Server Metadata .well-known endpoint!
author Kim Alvefur <zash@zash.se>
date Sun, 30 Apr 2023 16:13:40 +0200
parents 869df5a6b0c5
children
line wrap: on
line source

local mod_groups = module:depends("groups_internal");

module:hook("user-registered", function(event)
	local validated_invite = event.validated_invite or (event.session and event.session.validated_invite);
	if not validated_invite then
		-- not registered via invite, nothing to do
		return
	end
	local groups = validated_invite and validated_invite.additional_data and validated_invite.additional_data.groups;
	if not groups then
		-- invite has no groups, nothing to do
		return
	end

	local new_username = event.username;
	module:log("debug", "adding %s to groups from invite", new_username);
	for _, group in ipairs(groups) do
		mod_groups.add_member(group, new_username);
	end
end);