mod_invites_groups: factor group handling out of mod_invites_register
authorJonas Schäfer <jonas@wielicki.name>
Tue, 26 Jan 2021 22:04:23 +0100
changeset 4404 869df5a6b0c5
parent 4403 846b7af5588c
child 4405 52e1ab99d25e
mod_invites_groups: factor group handling out of mod_invites_register
mod_invites_groups/mod_invites_groups.lua
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mod_invites_groups/mod_invites_groups.lua	Tue Jan 26 22:04:23 2021 +0100
@@ -0,0 +1,20 @@
+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);