No mostrar los nombres de usuario que tienen una insignia específica

¿Hay alguna forma de ocultar la lista de usuarios que tienen una insignia específica?

He consultado Don't list members having the same badges y Hide badge user list?, pero no se ajustan del todo a nuestro caso de uso (o, más probablemente, a nuestro caso extremo).

Las insignias son muy populares en nuestra comunidad, son un recurso fantástico para la participación.

Tenemos algunas categorías premium en nuestro Discourse que solo están disponibles para suscriptores / miembros de pago y nos gustaría recompensar a esos miembros de pago con una insignia de oro para su perfil, llamémosla “Miembro Extra Especial” en este ejemplo.

El número de miembros de pago que tenemos es un número comercialmente sensible.

Ese número se filtraría a cualquiera que tuviera la insignia de Miembro Extra Especial, aunque esté oculta en la página de insignias, podrían simplemente hacer clic en su propia insignia y luego ver a todos los demás miembros que también la tienen.

¿Hay alguna forma de evitar que las personas vean quién más tiene solo una insignia específica? :thinking:

¿No podrías usar estilo en su lugar?

Hmmmm :thinking:

Muy posiblemente…

¿Esta advertencia conlleva el riesgo de filtrar números de miembros confidenciales?

Dado que este es un grupo principal, el nombre ‘hidden_group_test_2’ se usará en clases CSS que cualquiera puede ver.

Disculpen los colores llamativos, es solo para pruebas:

1 me gusta

No tengo objeciones a que se filtre el nombre del grupo oculto, siempre y cuando la lista/recuento de miembros no lo haga.

He realizado algunas pruebas, pero no estoy seguro de que esto sea ideal para nuestro caso de uso tampoco.

El distintivo (de nuestro grupo oculto) se aplica al usuario, pero en el momento en que se une a cualquiera de nuestros otros grupos, su distintivo es reemplazado por el del grupo al que acaba de unirse.

En su perfil, solo pueden elegir un distintivo de un grupo público, pierden por completo el acceso a su distintivo especial de miembro y no pueden volver a aplicarlo :confused:

¿Tienes esto configurado en los otros grupos:

Screenshot 2023-02-07 at 2.09.34 PM

Está en ‘Efectos’ en Administrar/Membresía para cada uno de los grupos.

Si está configurado en ese grupo y no en otros, no debería anularse.

El grupo principal determinará el flair y el título predeterminados para el usuario.

1 me gusta

Sí, está configurado en todos nuestros grupos, por lo que obtienen el distintivo del grupo al que acaban de unirse.

Otros pensamientos iban en la línea de forzar un título en todos los usuarios, por ejemplo, “Invitado”, pero eso podría ser cambiado por ellos a cualquiera de los títulos de insignia que tengan. No creo que pueda evitar que la gente cambie su Título.

Estoy buscando una forma para que los invitados y los miembros se identifiquen entre sí (es decir, una insignia), pero sin revelar el número de Miembros Extra Especiales que tenemos.

¿Habría otras soluciones o soluciones alternativas innovadoras?

¿Podría hacer algo ingenioso con los “Campos de usuario”?

¿Quizás crear un campo de usuario llamado “Estado”, hacerlo visible en su perfil, pero que no sea editable por ellos? ¿Podría entonces actualizar este campo de usuario “estado” automáticamente mediante una llamada a la API? (disparamos una llamada a la API para agregarlos a un Grupo)

Puede que esté en algo aquí:

He creado un campo de usuario llamado “Miembro” y no les permito editarlo:

Si edito un usuario para probarlo, puedo ver “Miembro: Sí” en su perfil:

Sin embargo, esto probablemente sea lo decisivo:

¿Cómo podría hacerlo? :thinking:

Tengo una llamada API existente que ya se realiza cuando alguien se convierte en miembro, lanzo una llamada API a Discourse para agregarlos a un grupo. ¿Podría también lanzar una segunda llamada API para actualizar ese campo de usuario?

Claro :slight_smile:

Cada vez que realizas una acción en Discourse, puedes consultar la pestaña de red de las herramientas de desarrollador de tu navegador para ver la consulta que se realizó.

Por ejemplo, aquí guardo el perfil de un usuario:

Verás la URL de la solicitud, mencionando el nombre de usuario y el tipo de solicitud (PUT).
En la pestaña Payload, verás los datos relevantes:

Los campos personalizados se enumeran como user_fields[X] donde X es el número del campo personalizado.


Editar: Vi que lo descubriste en Dev, así que, solo para enlazar… :slight_smile:

1 me gusta