annotate mod_groups_migration/mod_groups_migration.lua @ 6171:fe8222112cf4

mod_conversejs: Serve base app at / This makes things slightly less awkward for the browser to figure out which URLs belong to a PWA. The app's "start URL" was previously without the '/' and therefore was not considered within the scope of the PWA. Now the canonical app URL will always have a '/'. Prosody/mod_http should take care of redirecting existing links without the trailing / to the new URL. If you have an installation at https://prosody/conversejs then it is now at https://prosody/conversejs/ (the first URL will now redirect to the second URL if you use it). The alternative would be to make the PWA scope include the parent, i.e. the whole of https://prosody/ in this case. This might get messy if other PWAs are provided by the same site or Prosody installation, however.
author Matthew Wild <mwild1@gmail.com>
date Tue, 11 Feb 2025 13:18:38 +0000
parents dd3bfe8f182e
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
4387
e5b4ebacbf7a mod_groups_migration: module helping migration to groups
Jonas Schäfer <jonas@wielicki.name>
parents:
diff changeset
1 local host = module.host;
e5b4ebacbf7a mod_groups_migration: module helping migration to groups
Jonas Schäfer <jonas@wielicki.name>
parents:
diff changeset
2 local usermanager = require"core.usermanager";
e5b4ebacbf7a mod_groups_migration: module helping migration to groups
Jonas Schäfer <jonas@wielicki.name>
parents:
diff changeset
3
e5b4ebacbf7a mod_groups_migration: module helping migration to groups
Jonas Schäfer <jonas@wielicki.name>
parents:
diff changeset
4 local mod_groups = module:depends("groups_internal");
e5b4ebacbf7a mod_groups_migration: module helping migration to groups
Jonas Schäfer <jonas@wielicki.name>
parents:
diff changeset
5 local default_group_id = module:get_option("group_default_id", "default");
4416
dd3bfe8f182e mod_groups_migration: make default group name configurable
Jonas Schäfer <jonas@wielicki.name>
parents: 4391
diff changeset
6 local default_group_name = module:get_option("group_default_name", "default");
4387
e5b4ebacbf7a mod_groups_migration: module helping migration to groups
Jonas Schäfer <jonas@wielicki.name>
parents:
diff changeset
7
e5b4ebacbf7a mod_groups_migration: module helping migration to groups
Jonas Schäfer <jonas@wielicki.name>
parents:
diff changeset
8 local function trigger_migration()
e5b4ebacbf7a mod_groups_migration: module helping migration to groups
Jonas Schäfer <jonas@wielicki.name>
parents:
diff changeset
9 if mod_groups.exists(default_group_id) then
e5b4ebacbf7a mod_groups_migration: module helping migration to groups
Jonas Schäfer <jonas@wielicki.name>
parents:
diff changeset
10 module:log("debug", "skipping migration, group exists already")
e5b4ebacbf7a mod_groups_migration: module helping migration to groups
Jonas Schäfer <jonas@wielicki.name>
parents:
diff changeset
11 return
e5b4ebacbf7a mod_groups_migration: module helping migration to groups
Jonas Schäfer <jonas@wielicki.name>
parents:
diff changeset
12 end
e5b4ebacbf7a mod_groups_migration: module helping migration to groups
Jonas Schäfer <jonas@wielicki.name>
parents:
diff changeset
13 module:log("info", "migrating to mod_groups!")
e5b4ebacbf7a mod_groups_migration: module helping migration to groups
Jonas Schäfer <jonas@wielicki.name>
parents:
diff changeset
14
e5b4ebacbf7a mod_groups_migration: module helping migration to groups
Jonas Schäfer <jonas@wielicki.name>
parents:
diff changeset
15 local group_id = default_group_id;
4416
dd3bfe8f182e mod_groups_migration: make default group name configurable
Jonas Schäfer <jonas@wielicki.name>
parents: 4391
diff changeset
16 local ok, err = mod_groups.create({name=default_group_name}, true, group_id);
4387
e5b4ebacbf7a mod_groups_migration: module helping migration to groups
Jonas Schäfer <jonas@wielicki.name>
parents:
diff changeset
17 if not ok then
e5b4ebacbf7a mod_groups_migration: module helping migration to groups
Jonas Schäfer <jonas@wielicki.name>
parents:
diff changeset
18 module:log("error", "failed to create group: %s", err)
e5b4ebacbf7a mod_groups_migration: module helping migration to groups
Jonas Schäfer <jonas@wielicki.name>
parents:
diff changeset
19 return
e5b4ebacbf7a mod_groups_migration: module helping migration to groups
Jonas Schäfer <jonas@wielicki.name>
parents:
diff changeset
20 end
e5b4ebacbf7a mod_groups_migration: module helping migration to groups
Jonas Schäfer <jonas@wielicki.name>
parents:
diff changeset
21
e5b4ebacbf7a mod_groups_migration: module helping migration to groups
Jonas Schäfer <jonas@wielicki.name>
parents:
diff changeset
22 for user in usermanager.users(host) do
e5b4ebacbf7a mod_groups_migration: module helping migration to groups
Jonas Schäfer <jonas@wielicki.name>
parents:
diff changeset
23 mod_groups.add_member(group_id, user, true);
e5b4ebacbf7a mod_groups_migration: module helping migration to groups
Jonas Schäfer <jonas@wielicki.name>
parents:
diff changeset
24 module:log("debug", "added %s to %s", user, group_id)
e5b4ebacbf7a mod_groups_migration: module helping migration to groups
Jonas Schäfer <jonas@wielicki.name>
parents:
diff changeset
25 end
e5b4ebacbf7a mod_groups_migration: module helping migration to groups
Jonas Schäfer <jonas@wielicki.name>
parents:
diff changeset
26 module:log("debug", "synchronising group %s", group_id)
e5b4ebacbf7a mod_groups_migration: module helping migration to groups
Jonas Schäfer <jonas@wielicki.name>
parents:
diff changeset
27 mod_groups.sync(group_id)
e5b4ebacbf7a mod_groups_migration: module helping migration to groups
Jonas Schäfer <jonas@wielicki.name>
parents:
diff changeset
28 module:log("info", "added all users to group %s", group_id)
e5b4ebacbf7a mod_groups_migration: module helping migration to groups
Jonas Schäfer <jonas@wielicki.name>
parents:
diff changeset
29 end
e5b4ebacbf7a mod_groups_migration: module helping migration to groups
Jonas Schäfer <jonas@wielicki.name>
parents:
diff changeset
30
e5b4ebacbf7a mod_groups_migration: module helping migration to groups
Jonas Schäfer <jonas@wielicki.name>
parents:
diff changeset
31 module:hook_global("server-started", trigger_migration, -100)