Я изменил существующую группу и установил значение «Уровень доверия, автоматически предоставляемый участникам при их добавлении» на 2. Таким образом, все участники этой группы будут автоматически переведены на уровень доверия 2 при добавлении в группу:
Это решение продвинутое. Команда Rails может быть выполнена только при наличии SSH-доступа к вашему серверу, и её следует избегать, если вы не уверены в своих действиях. В любом случае всегда сначала создавайте резервную копию.
Привет, Ричи
Вы можете использовать скрипт Rails, похожий на этот:
Это должно сработать из консоли Rails:
target_group = Group.find_by_name("test")
users = User.joins(:group_users).where(group_users:{group_id: target_group.id})
users.each do |u|
u.trust_level = 2
u.save
end
Нет, это просто вывод, который не влияет на выполнение скрипта. Думаю, вы можете нажать q, чтобы выйти.
Также вы можете использовать это:
Это может быть связано с частью Group.find_by_name("test"). Не знаю, принимает ли она реальное имя группы или слаг.
Также я должен был упомянуть, что использование команд Rails довольно продвинуто, и перед выполнением подобных действий следует сделать резервную копию. Извините за это.
Группы обновляются в процессе выполнения задачи Sidekiq.
Задача называется EnsureDbConsistency и может быть запущена через Sidekiq, если вы знаете, как это сделать. Также можно подождать несколько часов — группы обновятся автоматически.
Я немного поспешил, предложив команду Rails без должного предупреждения, так как это может привести к проблемам, если мы точно не знаем, что делаем. Я добавлю более заметное предупреждение в свой пост