fix: add isReadOnly for syncer (#2015)

* feat: add read only mod for syncer

* feat: change readOnlyEnable to isReadOnly
This commit is contained in:
XDTD 2023-06-24 17:49:06 +08:00 committed by Yang Luo
parent 1780620ef4
commit 68f032b54d
15 changed files with 49 additions and 11 deletions

View File

@ -50,6 +50,7 @@ type Syncer struct {
AvatarBaseUrl string `xorm:"varchar(100)" json:"avatarBaseUrl"`
ErrorText string `xorm:"mediumtext" json:"errorText"`
SyncInterval int `json:"syncInterval"`
IsReadOnly bool `json:"isReadOnly"`
IsEnabled bool `json:"isEnabled"`
Adapter *Adapter `xorm:"-" json:"-"`

View File

@ -63,9 +63,11 @@ func (syncer *Syncer) syncUsers() {
}
} else {
if user.PreHash == oHash {
updatedOUser := syncer.createOriginalUserFromUser(user)
syncer.updateUser(updatedOUser)
fmt.Printf("Update from user to oUser: %v\n", updatedOUser)
if !syncer.IsReadOnly {
updatedOUser := syncer.createOriginalUserFromUser(user)
syncer.updateUser(updatedOUser)
fmt.Printf("Update from user to oUser: %v\n", updatedOUser)
}
// update preHash
user.PreHash = user.Hash
@ -91,15 +93,17 @@ func (syncer *Syncer) syncUsers() {
panic(err)
}
for _, user := range users {
id := user.Id
if _, ok := oUserMap[id]; !ok {
newOUser := syncer.createOriginalUserFromUser(user)
_, err = syncer.addUser(newOUser)
if err != nil {
panic(err)
if !syncer.IsReadOnly {
for _, user := range users {
id := user.Id
if _, ok := oUserMap[id]; !ok {
newOUser := syncer.createOriginalUserFromUser(user)
_, err = syncer.addUser(newOUser)
if err != nil {
panic(err)
}
fmt.Printf("New oUser: %v\n", newOUser)
}
fmt.Printf("New oUser: %v\n", newOUser)
}
}
}

View File

@ -376,6 +376,16 @@ class SyncerEditPage extends React.Component {
</div>
</Col>
</Row>
<Row style={{marginTop: "20px"}} >
<Col style={{marginTop: "5px"}} span={(Setting.isMobile()) ? 19 : 2}>
{Setting.getLabel(i18next.t("syncer:Is read-only"), i18next.t("syncer:Is read-only - Tooltip"))} :
</Col>
<Col span={1} >
<Switch checked={this.state.syncer.isReadOnly} onChange={checked => {
this.updateSyncerField("isReadOnly", checked);
}} />
</Col>
</Row>
<Row style={{marginTop: "20px"}} >
<Col style={{marginTop: "5px"}} span={(Setting.isMobile()) ? 19 : 2}>
{Setting.getLabel(i18next.t("general:Is enabled"), i18next.t("general:Is enabled - Tooltip"))} :

View File

@ -42,6 +42,7 @@ class SyncerListPage extends BaseListPage {
affiliationTable: "",
avatarBaseUrl: "",
syncInterval: 10,
isReadOnly: false,
isEnabled: false,
};
}

View File

@ -819,6 +819,8 @@
"Error text": "Fehlermeldung",
"Error text - Tooltip": "Fehler Text",
"Is hashed": "ist gehasht",
"Is read-only": "Is read-only",
"Is read-only - Tooltip": "Is read-only - Tooltip",
"New Syncer": "Neuer Syncer",
"Sync interval": "Synchronisierungsintervall",
"Sync interval - Tooltip": "Einheit in Sekunden",

View File

@ -819,6 +819,8 @@
"Error text": "Error text",
"Error text - Tooltip": "Error text",
"Is hashed": "Is hashed",
"Is read-only": "Is read-only",
"Is read-only - Tooltip": "Is read-only - Tooltip",
"New Syncer": "New Syncer",
"Sync interval": "Sync interval",
"Sync interval - Tooltip": "Unit in seconds",

View File

@ -819,6 +819,8 @@
"Error text": "Texto de error",
"Error text - Tooltip": "Texto de error",
"Is hashed": "Está encriptado",
"Is read-only": "Is read-only",
"Is read-only - Tooltip": "Is read-only - Tooltip",
"New Syncer": "Nuevo Syncer",
"Sync interval": "Intervalo de sincronización",
"Sync interval - Tooltip": "Unidad en segundos",

View File

@ -819,6 +819,8 @@
"Error text": "Texte d'erreur",
"Error text - Tooltip": "Texte d'erreur",
"Is hashed": "Est-haché",
"Is read-only": "Is read-only",
"Is read-only - Tooltip": "Is read-only - Tooltip",
"New Syncer": "Nouveau synchroniseur",
"Sync interval": "Intervalle de synchronisation",
"Sync interval - Tooltip": "Unité en secondes",

View File

@ -819,6 +819,8 @@
"Error text": "Teks kesalahan",
"Error text - Tooltip": "Teks kesalahan",
"Is hashed": "Apakah di-hash?",
"Is read-only": "Is read-only",
"Is read-only - Tooltip": "Is read-only - Tooltip",
"New Syncer": "Sinkronisasi Baru",
"Sync interval": "Interval sinkronisasi",
"Sync interval - Tooltip": "Satuan dalam detik",

View File

@ -819,6 +819,8 @@
"Error text": "エラーテキスト",
"Error text - Tooltip": "エラーテキスト",
"Is hashed": "ハッシュ化されました",
"Is read-only": "Is read-only",
"Is read-only - Tooltip": "Is read-only - Tooltip",
"New Syncer": "新しいシンクロナイザー",
"Sync interval": "同期の間隔",
"Sync interval - Tooltip": "単位は秒です",

View File

@ -819,6 +819,8 @@
"Error text": "오류 메시지",
"Error text - Tooltip": "에러 텍스트",
"Is hashed": "해시화 되었습니다",
"Is read-only": "Is read-only",
"Is read-only - Tooltip": "Is read-only - Tooltip",
"New Syncer": "신규 싱크어",
"Sync interval": "동기화 간격",
"Sync interval - Tooltip": "초 단위의 단위",

View File

@ -819,6 +819,8 @@
"Error text": "Texto de erro",
"Error text - Tooltip": "Texto de erro",
"Is hashed": "Está criptografado",
"Is read-only": "Is read-only",
"Is read-only - Tooltip": "Is read-only - Tooltip",
"New Syncer": "Novo Syncer",
"Sync interval": "Intervalo de sincronização",
"Sync interval - Tooltip": "Unidade em segundos",

View File

@ -819,6 +819,8 @@
"Error text": "Текст ошибки",
"Error text - Tooltip": "Текст ошибки",
"Is hashed": "Хешировано",
"Is read-only": "Is read-only",
"Is read-only - Tooltip": "Is read-only - Tooltip",
"New Syncer": "Новый синхронизатор",
"Sync interval": "Интервал синхронизации",
"Sync interval - Tooltip": "Единица измерения в секундах",

View File

@ -819,6 +819,8 @@
"Error text": "Văn bản lỗi",
"Error text - Tooltip": "Văn bản lỗi",
"Is hashed": "Đã được băm mã hóa",
"Is read-only": "Is read-only",
"Is read-only - Tooltip": "Is read-only - Tooltip",
"New Syncer": "New Syncer: Đồng bộ mới",
"Sync interval": "Khoảng thời gian đồng bộ hóa",
"Sync interval - Tooltip": "Đơn vị giây",

View File

@ -819,6 +819,8 @@
"Error text": "错误信息",
"Error text - Tooltip": "错误信息",
"Is hashed": "是否参与哈希计算",
"Is read-only": "Is read-only",
"Is read-only - Tooltip": "Is read-only - Tooltip",
"New Syncer": "添加同步器",
"Sync interval": "同步间隔",
"Sync interval - Tooltip": "单位为秒",