Mercurial > prosody-modules
annotate mod_groups_migration/mod_groups_migration.lua @ 5608:1893ae742f66
mod_http_oauth2: Show errors on device flow user code entry page
If the user enters the code incorrectly, having to click back to try
again is no fun. Instead, show the error and the code entry form again.
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Wed, 19 Jul 2023 13:05:47 +0200 |
parents | dd3bfe8f182e |
children |
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) |