Software / code / prosody-modules
Annotate
mod_groups_migration/mod_groups_migration.lua @ 5516:f25df3af02c1
mod_client_management: Include client software version number in listing
Should you ever wish to revoke a client by version number, e.g. for
security reasons affecting certain versions, then it would be good to at
the very least see which version is used.
Also includes the OAuth2 software ID, an optional unique identifier that
should be the same for all installations of a particular software.
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Sat, 03 Jun 2023 19:21:39 +0200 |
| parent | 4416:dd3bfe8f182e |
| 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) |