Promouvoir les utilisateurs au TL2 lors de l'adhésion à un groupe - rétroactivement ?

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 :

Cependant, cela n’ajoute pas rétroactivement tous les membres existants au niveau de confiance 2 :confused:

Comment puis-je forcer cela ?

Ou comment puis-je améliorer rétroactivement tous les membres du groupe jusqu’au TL2 ? :thinking:

3 « J'aime »

:warning: 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 :slight_smile:
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

Merci @nathank pour Delete all users not in a specific group - #2 by nathank :slight_smile:

3 « J'aime »

Merci @Canapin

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 :

Dois-je valider ce changement d’une manière ou d’une autre ? :thinking:

(cela ne les a pas promus au niveau TL2)

1 « J'aime »

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. :person_shrugging:


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.

2 « J'aime »

Hmmm, quelque chose d’étrange s’est produit.

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é :thinking:

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 :

:thinking:

De plus, l’utilisateur n’a pas obtenu le badge TL2 :

:thinking:

1 « J'aime »

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. :slight_smile:

J’ai trouvé la solution ici :

:slight_smile:

3 « J'aime »

Brillant, merci !

Je vais attendre patiemment que cela se résolve tout seul :blush:

Merci pour votre temps @Canapin - et pour votre solution - vous m’avez fait gagner énormément de temps en faisant cela manuellement :scream:

1 « J'aime »

De rien.

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 :slight_smile:

3 « J'aime »

Cette tâche Rails semble avoir rétrogradé tous nos utilisateurs TL4 et TL3 en TL2 :thinking:

J’espère que la tâche EnsureDbConsistency les corrigera tous automatiquement pendant la nuit :blush:

1 « J'aime »

Il le fera, les utilisateurs TL3 seront re-promus en supposant qu’ils répondent toujours aux critères.

TL4 devra être promu manuellement.

Pour éviter cela, chaque utilisateur doit être évalué selon l’énoncé et ne être promu que s’il est actuellement en dessous de TL2.

Si vos utilisateurs TL4 sont également membres d’un groupe, vous pourriez l’utiliser pour les promouvoir en masse.

3 « J'aime »

Super info, merci @Stephen Je vais faire ça maintenant :slight_smile:

3 « J'aime »

Tout va bien ce matin :blush:

Merci encore @Canapin et @Stephen :wave:

3 « J'aime »

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.