Quitar a un usuario de un grupo con un efecto de Nivel de Confianza no vuelve a calcular las membresías automáticas del grupo de los usuarios

He leído el tema, Group trust level donde se dice,

Así como este tema más antiguo, Should losing group membership unlock trust level?

Donde la situación descrita en gran medida coincide con mi experiencia,

Pero, lo que he encontrado en mi propia instancia de prueba de Discourse es esto…

Con todos los ajustes de Nivel de Confianza en los valores predeterminados, tengo una cuenta TL1 (U) y un grupo llamado tl3 que otorga Trust_Level_3.

  1. Condiciones iniciales
    • Nivel de Confianza: 1: usuario básico Desbloqueado
    • Grupos Automáticos: trust_level_0, trust_level_1
    • Grupos Personalizados: Ninguno
  2. Agregar U a tl3
    • Nivel de Confianza: 3: Regular Desbloqueado
    • Grupos Automáticos: trust_level_0, trust_level_1, trust_level_2, trust_level_3
    • Grupos Personalizados: tl3
  3. Eliminar U de tl3
    • Nivel de Confianza: 2: Miembro Desbloqueado
    • Grupos Automáticos: trust_level_0, trust_level_1, trust_level_2, trust_level_3
    • Grupos Personalizados: Ninguno
    • NOTA: A pesar de tener un nivel de confianza de 2, el usuario todavía está en el grupo automático trust_level_3. Con el entendimiento de que un usuario no puede ser degradado a TL1 sin un nivel de confianza bloqueado, el resultado esperado aquí es que el usuario debería perder inmediatamente la membresía en el grupo automático trust_level_2.
  4. Bloquear el nivel de confianza de U
    • Nivel de Confianza: 2: Miembro Bloqueado
    • Grupos Automáticos: trust_level_0, trust_level_1, trust_level_2, trust_level_3
    • Grupos Personalizados: Ninguno
    • NOTA: A pesar de tener un Nivel de Confianza de 2: Miembro, el usuario todavía está en el grupo automático trust_level_3.
  5. Desbloquear el nivel de confianza de U
    • Nivel de Confianza: 1: Básico Desbloqueado
    • Grupos Automáticos: trust_level_0, trust_level_1
    • Grupos Personalizados: Ninguno

Entonces, al dar de baja a un usuario de un grupo, el Nivel de Confianza se recalcula automáticamente e instantáneamente, pero la membresía del grupo automático no se recalcula a menos que el nivel de confianza del usuario experimente un evento de desbloqueo.

Mi suposición es que las membresías de grupos automáticos se calculan en todo el sistema para todos los usuarios una vez al día y las membresías de grupos automáticos se rectificarán en ese momento. Pero parece que las membresías de grupos automáticos deberían activarse al eliminar a un usuario de un grupo con un efecto de nivel de confianza o activarse inmediatamente ante cualquier cambio en el nivel de confianza, no solo ante un aumento del nivel de confianza.

Por lo tanto, la llamada a la API del backend para,

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

actualiza las membresías de grupos automáticos, pero

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

no lo hace, lo que parece un error, especialmente si se utilizan grupos automáticos de nivel de confianza para el control de acceso.

Y, para completar, obviamente las llamadas a,

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

que se invocan al cambiar manualmente el nivel de confianza de un usuario en la interfaz de administración, recalculan inmediatamente las membresías de grupos automáticos como se esperaba.

2 Me gusta

Sí, lo fundamental para la experiencia del desarrollador aquí es que deberíamos prohibir esta manipulación de grupos automáticos y obligarte a usar PUT {{site}}/admin/users/{{userId}}/trust_level solo para la transición de cosas. Devolver un 422 o algo si las personas intentan usar puntos finales para agregar o eliminar personas manualmente de los grupos.

Deshacer el nivel de confianza siempre debería ocurrir desde aquí:

Porque eso también admite el bloqueo, que es crítico.

Entiendo.

Solo quiero aclarar, todo lo relacionado con la API se vio registrando la transmisión XHR al realizar acciones en las membresías de grupo a través de la interfaz de usuario de membresía de grupo. En realidad, no las estoy realizando como llamadas a la API, son solo las llamadas a la API que se realizan al usar la interfaz de usuario.

Entonces, mi pensamiento es que si hay un grupo con un efecto TL3, al hacer clic en este botón,

Debería eliminarlos inmediatamente del grupo trust_level_3 si no cumplen con los requisitos para el Nivel de Confianza 3 o si tienen ese nivel de confianza bloqueado.

El caso de uso imaginado aquí es permitir, digamos, que un grupo de usuarios TL4 sea establecido como propietarios de un grupo con un efecto TL3 para que puedan promocionar manualmente a las personas a TL3.

El aspecto de promoción funciona, pero esos mismos usuarios que eliminan a alguien del grupo con efecto TL3 no tienen el efecto inmediato de eliminar al usuario afectado de trust_level_3.

Entender completamente esto es un uso muy poco convencional de la función.

Simplemente parece incongruente que un usuario pueda tener su Nivel de Confianza cambiado de 3 a 2 y permanecer en el grupo trust_level_3 hasta el próximo evento de recálculo.

2 Me gusta