# HG changeset patch # User Jonas Schäfer # Date 1611606872 -3600 # Node ID e5b4ebacbf7a66b9d96cad0391252e6172a5462a # Parent 6357ac65b4eb546ddfdafe5e352ebcb31c960d4a mod_groups_migration: module helping migration to groups Creates a default group with well-known ID at startup if that group does not exist yet. Adds all users to it. diff -r 6357ac65b4eb -r e5b4ebacbf7a mod_groups_migration/mod_groups_migration.lua --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mod_groups_migration/mod_groups_migration.lua Mon Jan 25 21:34:32 2021 +0100 @@ -0,0 +1,30 @@ +local host = module.host; +local usermanager = require"core.usermanager"; + +local mod_groups = module:depends("groups_internal"); +local default_group_id = module:get_option("group_default_id", "default"); + +local function trigger_migration() + if mod_groups.exists(default_group_id) then + module:log("debug", "skipping migration, group exists already") + return + end + module:log("info", "migrating to mod_groups!") + + local group_id = default_group_id; + local ok, err = mod_groups.create({name="default"}, false, group_id); + if not ok then + module:log("error", "failed to create group: %s", err) + return + end + + for user in usermanager.users(host) do + mod_groups.add_member(group_id, user, true); + module:log("debug", "added %s to %s", user, group_id) + end + module:log("debug", "synchronising group %s", group_id) + mod_groups.sync(group_id) + module:log("info", "added all users to group %s", group_id) +end + +module:hook_global("server-started", trigger_migration, -100)