Mercurial > prosody-modules
annotate mod_invites_groups/mod_invites_groups.lua @ 4838:fd2e48d4ac94
mod_bookmarks2: Advertise XEP-0049 support
In the case mod_private isn’t loaded, some clients (like poezio) won’t even
attempt to use Private XML Storage unless this feature is advertised. This is
on the domain JID and not on the account JID!
author | Emmanuel Gil Peyrot <linkmauve@linkmauve.fr> |
---|---|
date | Sun, 26 Dec 2021 14:51:35 +0100 |
parents | 869df5a6b0c5 |
children |
rev | line source |
---|---|
4400
869df5a6b0c5
mod_invites_groups: factor group handling out of mod_invites_register
Jonas Schäfer <jonas@wielicki.name>
parents:
diff
changeset
|
1 local mod_groups = module:depends("groups_internal"); |
869df5a6b0c5
mod_invites_groups: factor group handling out of mod_invites_register
Jonas Schäfer <jonas@wielicki.name>
parents:
diff
changeset
|
2 |
869df5a6b0c5
mod_invites_groups: factor group handling out of mod_invites_register
Jonas Schäfer <jonas@wielicki.name>
parents:
diff
changeset
|
3 module:hook("user-registered", function(event) |
869df5a6b0c5
mod_invites_groups: factor group handling out of mod_invites_register
Jonas Schäfer <jonas@wielicki.name>
parents:
diff
changeset
|
4 local validated_invite = event.validated_invite or (event.session and event.session.validated_invite); |
869df5a6b0c5
mod_invites_groups: factor group handling out of mod_invites_register
Jonas Schäfer <jonas@wielicki.name>
parents:
diff
changeset
|
5 if not validated_invite then |
869df5a6b0c5
mod_invites_groups: factor group handling out of mod_invites_register
Jonas Schäfer <jonas@wielicki.name>
parents:
diff
changeset
|
6 -- not registered via invite, nothing to do |
869df5a6b0c5
mod_invites_groups: factor group handling out of mod_invites_register
Jonas Schäfer <jonas@wielicki.name>
parents:
diff
changeset
|
7 return |
869df5a6b0c5
mod_invites_groups: factor group handling out of mod_invites_register
Jonas Schäfer <jonas@wielicki.name>
parents:
diff
changeset
|
8 end |
869df5a6b0c5
mod_invites_groups: factor group handling out of mod_invites_register
Jonas Schäfer <jonas@wielicki.name>
parents:
diff
changeset
|
9 local groups = validated_invite and validated_invite.additional_data and validated_invite.additional_data.groups; |
869df5a6b0c5
mod_invites_groups: factor group handling out of mod_invites_register
Jonas Schäfer <jonas@wielicki.name>
parents:
diff
changeset
|
10 if not groups then |
869df5a6b0c5
mod_invites_groups: factor group handling out of mod_invites_register
Jonas Schäfer <jonas@wielicki.name>
parents:
diff
changeset
|
11 -- invite has no groups, nothing to do |
869df5a6b0c5
mod_invites_groups: factor group handling out of mod_invites_register
Jonas Schäfer <jonas@wielicki.name>
parents:
diff
changeset
|
12 return |
869df5a6b0c5
mod_invites_groups: factor group handling out of mod_invites_register
Jonas Schäfer <jonas@wielicki.name>
parents:
diff
changeset
|
13 end |
869df5a6b0c5
mod_invites_groups: factor group handling out of mod_invites_register
Jonas Schäfer <jonas@wielicki.name>
parents:
diff
changeset
|
14 |
869df5a6b0c5
mod_invites_groups: factor group handling out of mod_invites_register
Jonas Schäfer <jonas@wielicki.name>
parents:
diff
changeset
|
15 local new_username = event.username; |
869df5a6b0c5
mod_invites_groups: factor group handling out of mod_invites_register
Jonas Schäfer <jonas@wielicki.name>
parents:
diff
changeset
|
16 module:log("debug", "adding %s to groups from invite", new_username); |
869df5a6b0c5
mod_invites_groups: factor group handling out of mod_invites_register
Jonas Schäfer <jonas@wielicki.name>
parents:
diff
changeset
|
17 for _, group in ipairs(groups) do |
869df5a6b0c5
mod_invites_groups: factor group handling out of mod_invites_register
Jonas Schäfer <jonas@wielicki.name>
parents:
diff
changeset
|
18 mod_groups.add_member(group, new_username); |
869df5a6b0c5
mod_invites_groups: factor group handling out of mod_invites_register
Jonas Schäfer <jonas@wielicki.name>
parents:
diff
changeset
|
19 end |
869df5a6b0c5
mod_invites_groups: factor group handling out of mod_invites_register
Jonas Schäfer <jonas@wielicki.name>
parents:
diff
changeset
|
20 end); |