simon
Outubro 10, 2023, 8:48pm
1
Ao olhar para o script “Adicionar usuário a um grupo através de Campo Personalizado do Usuário”, parece haver um pequeno problema. Se o gatilho “Primeiro login do usuário” for selecionado, o campo de entrada “Nome do Campo Personalizado do Usuário” deve ser definido como o nome do Campo do Usuário, por exemplo, “Idioma Nativo”. Mas se o gatilho “Recorrente” for selecionado, o campo de entrada “Nome do Campo Personalizado do Usuário” precisa ser definido com base no id do Campo do Usuário. Por exemplo, “user_field_5”.
Detalhes sobre como encontrar o nome para quando o gatilho Recorrente é usado estão aqui: Finding Userfield Custom Name for 'Add user to group through User Custom Field' - #2 by leonardo .
Idealmente, o nome amigável (por exemplo, “Idioma Nativo”) seria usado como o valor correto para ambos os gatilhos disponíveis. O código relevante está aqui: https://github.com/discourse/discourse-automation/blob/main/lib/discourse_automation/scripts/add_user_to_group_through_custom_field.rb . A forma como o gatilho “Primeiro login do usuário” encontra o Campo Personalizado do Usuário correto a partir do nome do campo (em vez do id) está aqui:
https://github.com/discourse/discourse-automation/blob/main/lib/discourse_automation/scripts/add_user_to_group_through_custom_field.rb#L54-L67
Talvez haja uma maneira retrocompatível de aplicar essa lógica ao gatilho Recorrente.
3 curtidas
Apenas para constar, isso é mencionado no tutorial:
Este guia explica como adicionar usuários automaticamente a grupos com base na seleção de um campo de usuário personalizado durante o cadastro ou atualização de perfil.
Nível de usuário exigido: Administrador
Sumário
Criar os grupos necessários
Configurar um campo de usuário personalizado
Criar uma automação para adicionar usuários a grupos
Testar a configuração
Criando os grupos
Primeiro, crie os grupos aos quais você deseja que os usuários sejam adicionad…
Mencionei a reformulação do script para consistência, embora ainda não tenha sido priorizada. Há também as configurações de administrador public user custom fields (campos personalizados públicos do usuário) e staff user custom fields (campos personalizados de funcionários do usuário) que seria bom alinhar com isso também.
(E também há poll groupable user fields (campos agrupáveis de pesquisa para usuários), que usa o ‘friendly name’ (nome amigável))
4 curtidas
simon
Outubro 11, 2023, 1:09am
4
Aqui está um PR para corrigir o problema:
main ← scossar:feature-allow-either-user-field-name-or-user-custom-field-name-for-input
opened 01:07AM - 11 Oct 23 UTC
Currently the `add_user_to_group_through_custom_field` script expects the UserCu… stomField name to be used when the automation is triggered with the "Recurring" trigger, and the UserField name to be used when the automation is triggered by the "User first logged in" trigger. This is confusing for users. For both triggers, it would be better if the UserField name could be used. That's the name that is displayed on the Admin / Customize / User Fields page.
This PR attempts to fix the issue in a backwards compatible way, so that existing automations that are making use of the UserCustomField name (for example: 'user_field_5') will not be broken.
The PR also updates the "with one matching user" test to set the UserCustomField name in the way that Discourse sets the name - based on the UserField's id.
Related discussion on Meta: https://meta.discourse.org/t/add-user-to-group-script-has-different-field-input-for-the-two-triggers/281813
2 curtidas
Isso foi resolvido com um novo menu suspenso para selecionar seus Campos Personalizados de Usuário existentes, o que funciona para ambos os gatilhos:
committed 11:57PM - 26 Oct 23 UTC
New field to select user custom field. In addition, `add_user_to_group_through_c… ustom_field` script was adjusted to use the new component.
Also, data were migrated. Before they were not consistent.
Recurring script accepted text value which was user field identifier like `user_field_1`.
First logged in accepted text value which was user field name like `Title`.
2 curtidas