# Remover um usuário de um grupo com efeito de Nível de Confiança não recalcula as associações de Grupos Automáticos dos usuários

**URL:** <https://meta.discourse.org/t/removing-a-user-from-a-group-with-a-trust-level-effect-does-not-recompute-the-users-automatic-group-memberships/319697>\
**Category:** Bug\
**Tags:** groups, trust-levels\
**Created:** [Agosto 1, 2024, 7:24pm UTC](https://meta.discourse.org/t/removing-a-user-from-a-group-with-a-trust-level-effect-does-not-recompute-the-users-automatic-group-memberships/319697 "2024-08-01T19:24:17Z")\
**Posts on this page:** 1\
**Showing post:** 1

<div class="post-metadata">

**Author:** ![elmstedt](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/elmstedt/32/314607_2.png) [@elmstedt](https://meta.discourse.org/u/elmstedt)\
**Post date:** [Agosto 1, 2024, 7:24pm UTC](https://meta.discourse.org/t/removing-a-user-from-a-group-with-a-trust-level-effect-does-not-recompute-the-users-automatic-group-memberships/319697/1 "2024-08-01T19:24:17Z")

</div>

Eu li o tópico, [Group trust level](https://meta.discourse.org/t/group-trust-level/314024) onde é dito,

> [@JammyDodger](#):
>
> Quando você remove alguém de um grupo que concede um nível de confiança, ele recalcula o nível de confiança e o define para o que seria sem o impulso do grupo. 👍
> 
> Os níveis de confiança são ajustados tanto na adição quanto na remoção do grupo.

Assim como este tópico mais antigo, [Should losing group membership unlock trust level?](https://meta.discourse.org/t/should-losing-group-membership-unlock-trust-level/66025)

Onde a situação descrita _em grande parte_ corresponde à minha experiência,

> [@Falco](#):
>
> No entanto, é muito complicado, porque, por exemplo:
> 
> 1. Usuário é TL1
> 2. Usuário entra no Patreon, o grupo de patronos foi configurado para dar TL3 neste site
> 3. Usuário sai do Patreon, o plugin remove do grupo
> 4. Usuário continua TL3 porque o nível de confiança está bloqueado automaticamente.
> 5. Administrador desbloqueia o nível de confiança, o usuário se torna TL2. (Não TL1, você não pode ser rebaixado de TL2 sem TL bloqueado).

Mas, o que eu descobri na minha própria instância de teste do Discourse é isto…

Com todas as configurações de **Nível de Confiança** no padrão, tenho uma conta TL1 ( **U** ) e um grupo chamado **tl3** que concede `Trust_Level_3`.

1. Condições iniciais
  - **Nível de Confiança:** `1: usuário básico` **Desbloqueado**
  - **Grupos Automáticos:** `trust_level_0`, `trust_level_1`
  - **Grupos Personalizados:** Nenhum

2. Adicionar **U** ao **tl3**
  - **Nível de Confiança:** `3: Regular` **Desbloqueado**
  - **Grupos Automáticos:** `trust_level_0`, `trust_level_1`, `trust_level_2`, `trust_level_3`
  - **Grupos Personalizados:**  **tl3**

3. Remover **U** do **tl3**
  - **Nível de Confiança:** `2: Membro` **Desbloqueado**
  - **Grupos Automáticos:** `trust_level_0`, `trust_level_1`, `trust_level_2`, `trust_level_3`
  - **Grupos Personalizados:** Nenhum
  - **NOTA:** Apesar de ter um nível de confiança 2, o usuário ainda está no grupo automático `trust_level_3`. Com o entendimento de que um usuário não pode ser rebaixado para TL1 sem um nível de confiança bloqueado, o resultado esperado aqui é que o usuário perca imediatamente a associação ao grupo automático `trust_level_2`.

4. Bloquear o nível de confiança de **U**
  - **Nível de Confiança:** `2: Membro` **Bloqueado**
  - **Grupos Automáticos:** `trust_level_0`, `trust_level_1`, `trust_level_2`, `trust_level_3`
  - **Grupos Personalizados:** Nenhum
  - **NOTA:** Apesar de ter um Nível de Confiança de `2: Membro`, o usuário ainda está no grupo automático `trust_level_3`.

5. Desbloquear o nível de confiança de **U**
  - **Nível de Confiança:** `1: Básico` **Desbloqueado**
  - **Grupos Automáticos:** `trust_level_0`, `trust_level_1`
  - **Grupos Personalizados:** Nenhum

Portanto, ao cancelar a inscrição de um usuário em um grupo, o Nível de Confiança é recalculado automaticamente e instantaneamente, mas a associação ao grupo _automático_ _não_ é recalculada, a menos que o nível de confiança do usuário experimente um evento de desbloqueio.

Minha _suposição_ é que as associações de grupos automáticos são computadas em todo o sistema para todos os usuários uma vez por dia e as associações de grupos automáticos serão retificadas nesse momento. Mas _parece_ que as associações de grupos automáticos deveriam ser acionadas ao remover um usuário de um grupo com efeito de nível de confiança _ou_ acionadas imediatamente após _qualquer_ alteração no nível de confiança, não apenas em um _aumento_ do nível de confiança.

Então, a chamada da API de backend para,

```plaintext
POST {{site}}/admin/users/{{userId}}/groups

```

atualiza as associações de grupos automáticos, mas

```plaintext
DELETE {{site}}/admin/users/{{usedId}}/groups/{{groupId}}

```

não o faz, o que parece um bug, especialmente se você estiver usando grupos automáticos de nível de confiança para controle de acesso.

E, para completar, obviamente as chamadas para,

```plaintext
PUT {{site}}/admin/users/{{userId}}/trust_level

```

que são invocadas ao alterar manualmente o nível de confiança de um usuário na interface de administração, imediatamente recompilam as associações de grupos automáticos como esperado.

---

_[View the full topic](https://meta.discourse.org/t/removing-a-user-from-a-group-with-a-trust-level-effect-does-not-recompute-the-users-automatic-group-memberships/319697)._
