diff --git a/object/syncer.go b/object/syncer.go index f3171731..5bb29eef 100644 --- a/object/syncer.go +++ b/object/syncer.go @@ -43,6 +43,7 @@ type Syncer struct { Password string `xorm:"varchar(100)" json:"password"` Database string `xorm:"varchar(100)" json:"database"` Table string `xorm:"varchar(100)" json:"table"` + TablePrimaryKey string `xorm:"varchar(100)" json:"tablePrimaryKey"` TableColumns []*TableColumn `xorm:"mediumtext" json:"tableColumns"` AffiliationTable string `xorm:"varchar(100)" json:"affiliationTable"` AvatarBaseUrl string `xorm:"varchar(100)" json:"avatarBaseUrl"` diff --git a/object/syncer_user.go b/object/syncer_user.go index 104e905c..ac609a26 100644 --- a/object/syncer_user.go +++ b/object/syncer_user.go @@ -68,7 +68,7 @@ func (syncer *Syncer) getActiveColumns() []string { func (syncer *Syncer) updateUser(user *OriginalUser) bool { m := syncer.getMapFromOriginalUser(user) columns := syncer.getActiveColumns() - affected, err := syncer.Adapter.Engine.Table(syncer.Table).ID(user.Id).Cols(columns...).Update(m) + affected, err := syncer.Adapter.Engine.Table(syncer.Table).ID(syncer.TablePrimaryKey).Cols(columns...).Update(m) if err != nil { panic(err) } diff --git a/web/src/SyncerEditPage.js b/web/src/SyncerEditPage.js index 39c6d4dc..2ca3b2b6 100644 --- a/web/src/SyncerEditPage.js +++ b/web/src/SyncerEditPage.js @@ -178,6 +178,16 @@ class SyncerEditPage extends React.Component { }} /> + + + {Setting.getLabel(i18next.t("syncer:Table primary key"), i18next.t("syncer:Table primary key - Tooltip"))} : + + + { + this.updateSyncerField('tablePrimaryKey', e.target.value); + }} /> + + {Setting.getLabel(i18next.t("syncer:Table columns"), i18next.t("syncer:Table columns - Tooltip"))} : diff --git a/web/src/locales/de/data.json b/web/src/locales/de/data.json index 0b2b63eb..c3817d5b 100644 --- a/web/src/locales/de/data.json +++ b/web/src/locales/de/data.json @@ -322,15 +322,23 @@ "Affiliation table - Tooltip": "Affiliation table - Tooltip", "Avatar base URL": "Avatar base URL", "Avatar base URL - Tooltip": "Avatar base URL - Tooltip", + "Casdoor column": "Casdoor column", + "Column name": "Column name", + "Column type": "Column type", "Database": "Database", "Database - Tooltip": "Database - Tooltip", "Edit Syncer": "Edit Syncer", "Is enabled": "Is enabled", "Is enabled - Tooltip": "Is enabled - Tooltip", + "Is hashed": "Is hashed", "Sync interval": "Sync interval", "Sync interval - Tooltip": "Sync interval - Tooltip", "Table": "Table", - "Table - Tooltip": "Table - Tooltip" + "Table - Tooltip": "Table - Tooltip", + "Table columns": "Table columns", + "Table columns - Tooltip": "Table columns - Tooltip", + "Table primary key": "Table primary key", + "Table primary key - Tooltip": "Table primary key - Tooltip" }, "token": { "Access token": "Access token", diff --git a/web/src/locales/en/data.json b/web/src/locales/en/data.json index bbfe3fd9..142689d0 100644 --- a/web/src/locales/en/data.json +++ b/web/src/locales/en/data.json @@ -322,15 +322,23 @@ "Affiliation table - Tooltip": "Affiliation table - Tooltip", "Avatar base URL": "Avatar base URL", "Avatar base URL - Tooltip": "Avatar base URL - Tooltip", + "Casdoor column": "Casdoor column", + "Column name": "Column name", + "Column type": "Column type", "Database": "Database", "Database - Tooltip": "Database - Tooltip", "Edit Syncer": "Edit Syncer", "Is enabled": "Is enabled", "Is enabled - Tooltip": "Is enabled - Tooltip", + "Is hashed": "Is hashed", "Sync interval": "Sync interval", "Sync interval - Tooltip": "Sync interval - Tooltip", "Table": "Table", - "Table - Tooltip": "Table - Tooltip" + "Table - Tooltip": "Table - Tooltip", + "Table columns": "Table columns", + "Table columns - Tooltip": "Table columns - Tooltip", + "Table primary key": "Table primary key", + "Table primary key - Tooltip": "Table primary key - Tooltip" }, "token": { "Access token": "Access token", diff --git a/web/src/locales/fr/data.json b/web/src/locales/fr/data.json index 0b2b63eb..c3817d5b 100644 --- a/web/src/locales/fr/data.json +++ b/web/src/locales/fr/data.json @@ -322,15 +322,23 @@ "Affiliation table - Tooltip": "Affiliation table - Tooltip", "Avatar base URL": "Avatar base URL", "Avatar base URL - Tooltip": "Avatar base URL - Tooltip", + "Casdoor column": "Casdoor column", + "Column name": "Column name", + "Column type": "Column type", "Database": "Database", "Database - Tooltip": "Database - Tooltip", "Edit Syncer": "Edit Syncer", "Is enabled": "Is enabled", "Is enabled - Tooltip": "Is enabled - Tooltip", + "Is hashed": "Is hashed", "Sync interval": "Sync interval", "Sync interval - Tooltip": "Sync interval - Tooltip", "Table": "Table", - "Table - Tooltip": "Table - Tooltip" + "Table - Tooltip": "Table - Tooltip", + "Table columns": "Table columns", + "Table columns - Tooltip": "Table columns - Tooltip", + "Table primary key": "Table primary key", + "Table primary key - Tooltip": "Table primary key - Tooltip" }, "token": { "Access token": "Access token", diff --git a/web/src/locales/ja/data.json b/web/src/locales/ja/data.json index 0b2b63eb..c3817d5b 100644 --- a/web/src/locales/ja/data.json +++ b/web/src/locales/ja/data.json @@ -322,15 +322,23 @@ "Affiliation table - Tooltip": "Affiliation table - Tooltip", "Avatar base URL": "Avatar base URL", "Avatar base URL - Tooltip": "Avatar base URL - Tooltip", + "Casdoor column": "Casdoor column", + "Column name": "Column name", + "Column type": "Column type", "Database": "Database", "Database - Tooltip": "Database - Tooltip", "Edit Syncer": "Edit Syncer", "Is enabled": "Is enabled", "Is enabled - Tooltip": "Is enabled - Tooltip", + "Is hashed": "Is hashed", "Sync interval": "Sync interval", "Sync interval - Tooltip": "Sync interval - Tooltip", "Table": "Table", - "Table - Tooltip": "Table - Tooltip" + "Table - Tooltip": "Table - Tooltip", + "Table columns": "Table columns", + "Table columns - Tooltip": "Table columns - Tooltip", + "Table primary key": "Table primary key", + "Table primary key - Tooltip": "Table primary key - Tooltip" }, "token": { "Access token": "Access token", diff --git a/web/src/locales/ko/data.json b/web/src/locales/ko/data.json index 0b2b63eb..c3817d5b 100644 --- a/web/src/locales/ko/data.json +++ b/web/src/locales/ko/data.json @@ -322,15 +322,23 @@ "Affiliation table - Tooltip": "Affiliation table - Tooltip", "Avatar base URL": "Avatar base URL", "Avatar base URL - Tooltip": "Avatar base URL - Tooltip", + "Casdoor column": "Casdoor column", + "Column name": "Column name", + "Column type": "Column type", "Database": "Database", "Database - Tooltip": "Database - Tooltip", "Edit Syncer": "Edit Syncer", "Is enabled": "Is enabled", "Is enabled - Tooltip": "Is enabled - Tooltip", + "Is hashed": "Is hashed", "Sync interval": "Sync interval", "Sync interval - Tooltip": "Sync interval - Tooltip", "Table": "Table", - "Table - Tooltip": "Table - Tooltip" + "Table - Tooltip": "Table - Tooltip", + "Table columns": "Table columns", + "Table columns - Tooltip": "Table columns - Tooltip", + "Table primary key": "Table primary key", + "Table primary key - Tooltip": "Table primary key - Tooltip" }, "token": { "Access token": "Access token", diff --git a/web/src/locales/ru/data.json b/web/src/locales/ru/data.json index 0b2b63eb..c3817d5b 100644 --- a/web/src/locales/ru/data.json +++ b/web/src/locales/ru/data.json @@ -322,15 +322,23 @@ "Affiliation table - Tooltip": "Affiliation table - Tooltip", "Avatar base URL": "Avatar base URL", "Avatar base URL - Tooltip": "Avatar base URL - Tooltip", + "Casdoor column": "Casdoor column", + "Column name": "Column name", + "Column type": "Column type", "Database": "Database", "Database - Tooltip": "Database - Tooltip", "Edit Syncer": "Edit Syncer", "Is enabled": "Is enabled", "Is enabled - Tooltip": "Is enabled - Tooltip", + "Is hashed": "Is hashed", "Sync interval": "Sync interval", "Sync interval - Tooltip": "Sync interval - Tooltip", "Table": "Table", - "Table - Tooltip": "Table - Tooltip" + "Table - Tooltip": "Table - Tooltip", + "Table columns": "Table columns", + "Table columns - Tooltip": "Table columns - Tooltip", + "Table primary key": "Table primary key", + "Table primary key - Tooltip": "Table primary key - Tooltip" }, "token": { "Access token": "Access token", diff --git a/web/src/locales/zh/data.json b/web/src/locales/zh/data.json index 80f62035..3dab23b5 100644 --- a/web/src/locales/zh/data.json +++ b/web/src/locales/zh/data.json @@ -322,15 +322,23 @@ "Affiliation table - Tooltip": "工作单位的数据库表名", "Avatar base URL": "头像基础URL", "Avatar base URL - Tooltip": "头像URL的前缀", + "Casdoor column": "Casdoor列名", + "Column name": "列名", + "Column type": "列类型", "Database": "数据库", "Database - Tooltip": "数据库名称", "Edit Syncer": "修改同步器", "Is enabled": "已启用", "Is enabled - Tooltip": "是否启用", + "Is hashed": "是否参与哈希计算", "Sync interval": "同步间隔", "Sync interval - Tooltip": "单位为分钟", "Table": "表名", - "Table - Tooltip": "数据库表名" + "Table - Tooltip": "数据库表名", + "Table columns": "表格列", + "Table columns - Tooltip": "参与数据同步的表格列,不参与同步的列不需要添加", + "Table primary key": "表主键", + "Table primary key - Tooltip": "表主键,如id" }, "token": { "Access token": "Access token",