From e5b71a08ae60f6abd5bb7339f5ec0ba55238e052 Mon Sep 17 00:00:00 2001 From: Yixiang Zhao Date: Fri, 13 May 2022 20:24:46 +0800 Subject: [PATCH] feat: support "+" in syncer column name (#752) * feat: support + in syncer column name Signed-off-by: Yixiang Zhao * feat: trim Signed-off-by: Yixiang Zhao --- object/syncer_util.go | 13 ++++++++++++- web/src/Setting.js | 2 +- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/object/syncer_util.go b/object/syncer_util.go index e60e24b1..ea4bb10a 100644 --- a/object/syncer_util.go +++ b/object/syncer_util.go @@ -173,7 +173,18 @@ func (syncer *Syncer) getOriginalUsersFromMap(results []map[string]string) []*Or } for _, tableColumn := range syncer.TableColumns { - syncer.setUserByKeyValue(originalUser, tableColumn.CasdoorName, result[tableColumn.Name]) + value := "" + if strings.Contains(tableColumn.Name, "+") { + names := strings.Split(tableColumn.Name, "+") + var values []string + for _, name := range names { + values = append(values, result[strings.Trim(name, " ")]) + } + value = strings.Join(values, " ") + } else { + value = result[tableColumn.Name] + } + syncer.setUserByKeyValue(originalUser, tableColumn.CasdoorName, value) } if syncer.Type == "Keycloak" { diff --git a/web/src/Setting.js b/web/src/Setting.js index 1f108a4b..8d8965eb 100644 --- a/web/src/Setting.js +++ b/web/src/Setting.js @@ -836,7 +836,7 @@ export function getSyncerTableColumns(syncer) { ] }, { - "name":"USERNAME", + "name":"LAST_NAME+FIRST_NAME", "type":"string", "casdoorName":"DisplayName", "isHashed":true,