J’ai modifié un groupe existant et défini la valeur « Niveau de confiance accordé automatiquement aux membres lorsqu’ils sont ajoutés » sur 2, de sorte que tous les membres de ce groupe seront invités au niveau de confiance 2 lorsqu’ils seront ajoutés au groupe :
Cette solution est avancée. La commande Rails ne peut être exécutée que si vous avez un accès SSH à votre serveur et doit être évitée si vous n’êtes pas sûr de ce que vous faites. Dans tous les cas, faites toujours une sauvegarde au préalable.
Bonjour Richie
Vous pouvez utiliser un script rails similaire à celui-ci :
Cela devrait fonctionner depuis la console 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
Je ne connais pas du tout la console Rails, mais j’ai exécuté ce que vous avez posté ici et elle est maintenant bloquée sur END avec un curseur qui clignote devant moi :
Non, il ne s’agit que d’une sortie qui n’a aucun effet sur l’exécution du script. Je pense que vous pouvez appuyer sur q pour la quitter.
Vous pouvez également utiliser ceci :
Cela pourrait être lié à la partie Group.find_by_name("test"). Je ne sais pas s’il accepte le nom réel du groupe ou son slug.
De plus, j’aurais dû mentionner que l’utilisation des commandes rails est assez avancée et qu’une sauvegarde devrait être effectuée avant de faire ce genre de choses. Je m’en excuse.
Si je regarde un utilisateur qui était TL1 avant que je n’exécute ce script rails, je vois qu’il est maintenant TL2 (ce qui est génial, merci beaucoup !)
Mais, si je regarde le groupe d’utilisateurs TL2, le nombre total d’utilisateurs dans le groupe n’a pas augmenté
De même, si je recherche l’un des utilisateurs qui vient d’être promu au niveau TL2, il n’apparaît pas dans les résultats de recherche pour le groupe TL2 :
Les groupes sont mis à jour pendant un job Sidekiq.
La tâche est EnsureDbConsistency et peut être déclenchée via Sidekiq, si vous savez comment faire. Vous pouvez également attendre quelques heures ; les groupes seront mis à jour automatiquement.
J’ai été un peu trop rapide en suggérant une commande rails sans avertissement approprié, car cela peut mal tourner si nous ne savons pas vraiment ce que nous faisons. J’ajouterai un avertissement plus visible à mon message