Tags de funcionários causam índice duplicado de tags

Continuando a discussão de ActiveRecord::RecordNotUnique em idx_tag_users_ix1: Como corrigir?:

O erro foi reproduzido. Acho que estou no caminho para descobrir esse bug.

Passos para reproduzir

  1. Crie uma tag #foo

  2. Limite o uso da tag #foo para a Equipe

  3. Crie um grupo Bar

  4. Atribua uma notificação de “Observando” da tag #foo para o grupo Bar

  5. Faça um usuário não privilegiado ingressar no grupo Bar

  6. E altere a notificação pessoal dele para #foo para “Normal”

  7. O usuário não privilegiado não deve conseguir mais ler uma página

Eu suspeito que é isso que está acontecendo, pois aconteceu duas vezes com pessoas diferentes. O erro é assim: https://oxygen.offdem.net/logs/show/f70207d3affa8967932b9122d2be212b

Talvez o título seja um pouco limitante. Acho que tem mais a ver com a restrição de tags a grupos e notificações pessoais.

Todos os novos usuários agora têm uma entrada duplicada que deve ser removida do 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 }

Não tenho certeza se estou a fazer a repro corretamente…

  • Criar grupo de tags
  • Criar tag #staff-tag no grupo de tags
  • Definir ‘As tags são visíveis para todos, mas apenas os seguintes grupos podem usá-las’ para staff

  • Criar grupo
  • Em /manage/tags, adicionar #staff-tag a Watching
  • Adicionar utilizador de teste (TL2) ao grupo
  • Confirmar que #staff-tag está a Watching para o utilizador de teste em Preferências/Tracking

* Navegar para `/tags/staff-tag` e alterar o ícone do sino para 'Normal'

Tudo parece funcionar?

Não tenho certeza sobre esta etapa. Usei as notificações de grupo para adicionar a tag nas notificações de acompanhamento para o grupo.

Eu quis dizer esta página aqui:

Talvez eu tenha abreviado demais o link - /g/GROUPNAME/manage/tags

Ou preciso tentar de outro local?

Não sei realmente. Não posso gastar muito tempo com isso antes do OFFDEM. Por enquanto, estou executando as requisições SQL para corrigir o problema para novos usuários à medida que eles chegam. Talvez eu tenha deixado passar um detalhe. Por exemplo… Todas as categorias estão silenciadas por padrão, isso pode afetar as notificações.

Isso pode ser relevante. Você está usando a configuração mutar todas as categorias por padrão para isso?

1 curtida

Sim, eu uso essa configuração.