Estou trabalhando em um plugin de nível de confiança aditivo que adiciona/exclui de um grupo dependendo da associação em um conjunto de outros grupos (por exemplo, associação em paid e special também o leva para o grupo paid-special).
É muito estranho que as promoções de TL acionem um evento :after_save, mas as despromoções de TL não acionem um evento :after_destroy, mas estou contornando isso com DiscourseEvent.on(:user_promoted).
Mas isso não funciona porque o gatilho é chamado antes que o nível de confiança seja atualizado:
Enviei um PR: https://github.com/pfaffman/discourse/pull/205