simon
10 Ottobre 2023, 8:48pm
1
Guardando lo script “Aggiungi utente a gruppo tramite campo personalizzato utente”, sembra esserci un piccolo problema. Se viene selezionato il trigger “Primo accesso utente”, l’input “Nome campo personalizzato utente” dovrebbe essere impostato sul nome del campo utente, ad esempio “Lingua nativa”. Ma se viene selezionato il trigger “Ricorrente”, l’input “Nome campo personalizzato utente” deve essere impostato in base all’id del campo utente. Ad esempio “user_field_5”.
Dettagli su come trovare il nome per quando viene utilizzato il trigger Ricorrente sono qui: Finding Userfield Custom Name for 'Add user to group through User Custom Field' - #2 by leonardo .
Idealmente, il nome visualizzato (ad esempio “Lingua nativa”) verrebbe utilizzato come valore corretto per entrambi i trigger disponibili. Il codice pertinente è qui: https://github.com/discourse/discourse-automation/blob/main/lib/discourse_automation/scripts/add_user_to_group_through_custom_field.rb . Il modo in cui il trigger “Primo accesso utente” trova il corretto campo personalizzato utente dal nome del campo (invece dell’id) è qui:
https://github.com/discourse/discourse-automation/blob/main/lib/discourse_automation/scripts/add_user_to_group_through_custom_field.rb#L54-L67
Forse c’è un modo retrocompatibile in cui quella logica potrebbe essere applicata al trigger Ricorrente.
3 Mi Piace
Tieni presente che questo è menzionato nel walkthrough:
This guide explains how to automatically add users to groups based on their selection of a user custom field during signup or profile update.
Required user level: Administrator
Summary
Create the necessary groups
Set up a User Custom Field
Create an automation to add users to groups
Test the setup
Creating the groups
First, create the groups you want users to be automatically added to:
Go to your site’s Admin area
Navigate to Users > Groups
Click “New G…
Ho menzionato la rielaborazione dello script per coerenza, anche se non è ancora stata considerata prioritaria. Ci sono anche le impostazioni di amministrazione public user custom fields e staff user custom fields che sarebbe bello allineare ad esso.
(E c’è anche poll groupable user fields, che utilizza il ‘friendly name’)
4 Mi Piace
simon
11 Ottobre 2023, 1:09am
4
Ecco una PR per correggere il 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 Mi Piace
Questo è stato ora risolto con un nuovo menu a discesa per selezionare i tuoi User Custom Fields esistenti, che funziona per entrambi i trigger:
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 Mi Piace