Les balises du personnel provoquent un index de balises en double

Continuant la discussion de ActiveRecord::RecordNotUnique sur idx_tag_users_ix1 : Comment corriger ? :

L’erreur a été reproduite. Je pense être sur la piste pour résoudre ce bug.

Étapes pour reproduire

  1. Créer une étiquette #foo

  2. Limiter l’utilisation de l’étiquette #foo au personnel

  3. Créer un groupe Bar

  4. Assigner une notification de surveillance de l’étiquette #foo au groupe Bar

  5. Faire en sorte qu’un utilisateur non privilégié rejoigne le groupe Bar

  6. et modifier sa notification personnelle pour #foo en Normal

  7. L’utilisateur non privilégié devrait être incapable de lire une page

Je soupçonne que c’est ce qui se passe, car cela est arrivé deux fois à des personnes différentes. L’erreur se présente comme suit : https://oxygen.offdem.net/logs/show/f70207d3affa8967932b9122d2be212b

Peut-être que le titre est un peu limitatif. Je pense que cela a plus à voir avec la restriction des étiquettes aux groupes et les notifications personnelles.

Tous les nouveaux utilisateurs ont maintenant une entrée en double qui doit être supprimée de la console :

 r = TagUser.connection.execute("SELECT user_id, tag_id, count(*) FROM tag_users GROUP BY tag_id, user_id HAVING count(*) > 1")
r.values.each { |uid,tag,_| TagUser.where(user_id: uid, tag_id: tag).last.destroy }

Je ne suis pas sûr de bien reproduire…

  • Créer un groupe d’étiquettes
  • Créer l’étiquette #staff-tag dans le groupe d’étiquettes
  • Définir « Les étiquettes sont visibles par tout le monde, mais seuls les groupes suivants peuvent les utiliser » sur staff

* Créer un groupe * Sur `/manage/tags`, ajouter `#staff-tag` à Suivi * Ajouter un utilisateur test (TL2) au groupe * Confirmer que `#staff-tag` est Suivi pour l'utilisateur test dans Préférences/Suivi
* Naviguer vers `/tags/staff-tag` et changer l'icône de cloche en « Normal »

Tout semble fonctionner ?

Je ne suis pas sûr de cette étape. J’ai utilisé les notifications de groupe pour ajouter la balise aux notifications de suivi pour le groupe.

Je voulais dire cette page ici :

J’ai peut-être trop abrégé le lien - /g/GROUPNAME/manage/tags

Ou dois-je essayer depuis un autre endroit ?

Je ne sais pas vraiment. Je ne peux pas y passer beaucoup de temps avant OFFDEM. Pour l’instant, j’exécute les requêtes SQL pour résoudre le problème des nouveaux utilisateurs au fur et à mesure qu’ils arrivent. Peut-être ai-je négligé un détail. Comme… Toutes les catégories sont en sourdine par défaut, cela pourrait affecter les notifications.

C’est peut-être pertinent. Utilisez-vous le paramètre mute all categories by default pour cela ?

1 « J'aime »

Oui, j’utilise ce paramètre.