simon
10월 10, 2023, 8:48오후
1
“Add user to group through User Custom Field” 스크립트를 살펴보면 몇 가지 문제가 있는 것 같습니다. “User first logged in” 트리거가 선택된 경우, “User Custom Field name” 입력값에는 사용자 필드의 _이름_이 설정되어야 합니다. 예를 들어 "Native Language"와 같이요. 하지만 “Recurring” 트리거가 선택된 경우, “User Custom Field name” 입력값은 사용자 필드의 id를 기반으로 설정해야 합니다. 예를 들어 "user_field_5"와 같이요.
Recurring 트리거 사용 시 이름을 찾는 방법에 대한 자세한 내용은 여기에 있습니다: Finding Userfield Custom Name for 'Add user to group through User Custom Field' - #2 by leonardo .
이상적으로는 친숙한 이름(예: “Native Language”)이 사용 가능한 두 트리거 모두에 대해 올바른 값으로 사용되어야 합니다. 관련 코드는 여기에 있습니다: https://github.com/discourse/discourse-automation/blob/main/lib/discourse_automation/scripts/add_user_to_group_through_custom_field.rb . “User first logged in” 트리거가 필드 이름(대신 id가 아닌)으로 올바른 사용자 커스텀 필드를 찾는 로직은 여기에 있습니다:
https://github.com/discourse/discourse-automation/blob/main/lib/discourse_automation/scripts/add_user_to_group_through_custom_field.rb#L54-L67
아마도 이 로직을 Recurring 트리거에 적용할 수 있는 하위 호환성 있는 방법이 있을 것입니다.
3개의 좋아요
참고로, 이 내용은 워크스루에 언급되어 있습니다:
이 가이드는 사용자가 가입 또는 프로필 업데이트 시 사용자 정의 필드를 선택한 내용에 따라 사용자를 자동으로 그룹에 추가하는 방법을 설명합니다.
필요한 사용자 권한: 관리자
요약
필요한 그룹 생성
사용자 정의 필드 설정
사용자를 그룹에 추가하는 자동화 생성
설정 테스트
그룹 생성
먼저, 사용자가 자동으로 추가되길 원하는 그룹을 생성하세요:
사이트의 관리자 영역으로 이동합니다.
관리자 사이드바에서 '그룹’으로 이동하거나 /admin/groups를 방문합니다.
생성하려는 각 그룹에 대해 '새 그룹’을 클릭합니다.
자동화 스크립트가 이 값을 사용하므로 각 그룹에 '전체 이름(Full Name)'을 반드시 추가하세요.
[create the groups]
자동화 스크립트는 사용자의 사용자 정의 필드 값을 그룹의 **전체 이름(Full Name)**과 일치시킵니다. 각 그룹의 전…
일관성을 위해 스크립트를 재작성하는 것에 대해 언급했지만, 아직 우선순위가 정해지지 않았습니다. 또한 public user custom fields와 staff user custom fields 관리자 설정도 이와 맞추는 것이 좋겠습니다.
(또한 ‘friendly name’을 사용하는 poll groupable user fields도 있습니다)
4개의 좋아요
이제 기존 사용자 사용자 정의 필드를 선택할 수 있는 새로운 드롭다운 메뉴가 추가되어 이 문제가 해결되었습니다. 이 기능은 두 가지 트리거 모두에서 작동합니다.
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개의 좋아요