author | Ben Smith <bens@effortlessis.com> |
Tue, 14 May 2024 07:31:34 -0700 | |
changeset 5912 | dcea4b4c415d |
parent 5905 | 9ed02a4f6ff4 |
permissions | -rw-r--r-- |
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"}); |