mod_invites_tracking/mod_invites_tracking.lua
author Ben Smith <bens@effortlessis.com>
Tue, 14 May 2024 07:31:34 -0700
changeset 5912 dcea4b4c415d
parent 5905 9ed02a4f6ff4
permissions -rw-r--r--
Tweaking documentation to clarify that Oauth2 can be used for VirtualHosts and Component installations.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
4398
32f1f18f4874 mod_invites_tracking: simple module to store who created an invite
Jonas Schäfer <jonas@wielicki.name>
parents:
diff changeset
     1
local tracking_store = module:open_store("invites_tracking");
32f1f18f4874 mod_invites_tracking: simple module to store who created an invite
Jonas Schäfer <jonas@wielicki.name>
parents:
diff changeset
     2
32f1f18f4874 mod_invites_tracking: simple module to store who created an invite
Jonas Schäfer <jonas@wielicki.name>
parents:
diff changeset
     3
module:hook("user-registered", function(event)
32f1f18f4874 mod_invites_tracking: simple module to store who created an invite
Jonas Schäfer <jonas@wielicki.name>
parents:
diff changeset
     4
	local validated_invite = event.validated_invite or (event.session and event.session.validated_invite);
32f1f18f4874 mod_invites_tracking: simple module to store who created an invite
Jonas Schäfer <jonas@wielicki.name>
parents:
diff changeset
     5
	local new_username = event.username;
32f1f18f4874 mod_invites_tracking: simple module to store who created an invite
Jonas Schäfer <jonas@wielicki.name>
parents:
diff changeset
     6
5905
9ed02a4f6ff4 mod_invites_tracking: Don't bother storing anything for non-invite IBR
Matthew Wild <mwild1@gmail.com>
parents: 5904
diff changeset
     7
	if not validated_invite then
9ed02a4f6ff4 mod_invites_tracking: Don't bother storing anything for non-invite IBR
Matthew Wild <mwild1@gmail.com>
parents: 5904
diff changeset
     8
		module:log("debug", "No invitation found for registration of %s", new_username);
9ed02a4f6ff4 mod_invites_tracking: Don't bother storing anything for non-invite IBR
Matthew Wild <mwild1@gmail.com>
parents: 5904
diff changeset
     9
		return;
9ed02a4f6ff4 mod_invites_tracking: Don't bother storing anything for non-invite IBR
Matthew Wild <mwild1@gmail.com>
parents: 5904
diff changeset
    10
	end
9ed02a4f6ff4 mod_invites_tracking: Don't bother storing anything for non-invite IBR
Matthew Wild <mwild1@gmail.com>
parents: 5904
diff changeset
    11
4398
32f1f18f4874 mod_invites_tracking: simple module to store who created an invite
Jonas Schäfer <jonas@wielicki.name>
parents:
diff changeset
    12
	local invite_id = nil;
32f1f18f4874 mod_invites_tracking: simple module to store who created an invite
Jonas Schäfer <jonas@wielicki.name>
parents:
diff changeset
    13
	local invite_source = nil;
32f1f18f4874 mod_invites_tracking: simple module to store who created an invite
Jonas Schäfer <jonas@wielicki.name>
parents:
diff changeset
    14
	if validated_invite then
32f1f18f4874 mod_invites_tracking: simple module to store who created an invite
Jonas Schäfer <jonas@wielicki.name>
parents:
diff changeset
    15
		invite_source = validated_invite.additional_data and validated_invite.additional_data.source;
32f1f18f4874 mod_invites_tracking: simple module to store who created an invite
Jonas Schäfer <jonas@wielicki.name>
parents:
diff changeset
    16
		invite_id = validated_invite.token;
32f1f18f4874 mod_invites_tracking: simple module to store who created an invite
Jonas Schäfer <jonas@wielicki.name>
parents:
diff changeset
    17
	end
32f1f18f4874 mod_invites_tracking: simple module to store who created an invite
Jonas Schäfer <jonas@wielicki.name>
parents:
diff changeset
    18
5904
cb3b2fbf57e7 mod_invites_tracking: Fix traceback when not registering via invite (thanks Link Mauve)
Matthew Wild <mwild1@gmail.com>
parents: 4398
diff changeset
    19
	tracking_store:set(new_username, {invite_id = invite_id, invite_source = invite_source});
4398
32f1f18f4874 mod_invites_tracking: simple module to store who created an invite
Jonas Schäfer <jonas@wielicki.name>
parents:
diff changeset
    20
	module:log("debug", "recorded that invite from %s was used to create %s", invite_source, new_username)
32f1f18f4874 mod_invites_tracking: simple module to store who created an invite
Jonas Schäfer <jonas@wielicki.name>
parents:
diff changeset
    21
end);
32f1f18f4874 mod_invites_tracking: simple module to store who created an invite
Jonas Schäfer <jonas@wielicki.name>
parents:
diff changeset
    22
32f1f18f4874 mod_invites_tracking: simple module to store who created an invite
Jonas Schäfer <jonas@wielicki.name>
parents:
diff changeset
    23
-- " " is an invalid localpart -> we can safely use it for store metadata
32f1f18f4874 mod_invites_tracking: simple module to store who created an invite
Jonas Schäfer <jonas@wielicki.name>
parents:
diff changeset
    24
tracking_store:set(" ", {version="1"});