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",