logologo
Start
Handbuch
Entwickler
Plugins
API
English
简体中文
日本語
한국어
Deutsch
Français
Español
Português
Русский
Italiano
Türkçe
Українська
Tiếng Việt
Bahasa Indonesia
ไทย
Polski
Nederlands
Čeština
العربية
עברית
हिन्दी
Svenska
Start
Handbuch
Entwickler
Plugins
API
logologo
Benutzer

Rollen & Berechtigungen

Rollenkonfiguration
Berechtigungskonfiguration
Anwendung in der UI
Rollenvereinigung

Entwicklerhandbuch

Berechtigungsleiste erweitern

Abteilungen

Abteilungsverwaltung
Abteilungsrollen-Verwaltung

Benutzerdatensynchronisierung

Synchronisierungsverwaltung

Datenquellen

WeChat Work
HTTP-API

Entwicklerhandbuch

Synchronisationsquellen erweitern
Synchronisationsziele erweitern
Previous PageSynchronisationsquellen erweitern
KI-Übersetzungshinweis

Diese Dokumentation wurde automatisch von KI übersetzt.

#Erweitern von Synchronisierungs-Zielressourcen

#Übersicht

NocoBase unterstützt standardmäßig die Synchronisierung von Benutzerdaten mit den Tabellen Benutzer und Abteilung. Sie können die Zielressourcen für die Datensynchronisierung jedoch auch erweitern, um Daten in andere Tabellen zu schreiben oder eine benutzerdefinierte Verarbeitung durchzuführen.

Experimentell

Die vollständige Dokumentation wird noch ergänzt.

#Schnittstelle zur Verarbeitung von Zielressourcen

export abstract class UserDataResource {
  name: string;
  accepts: SyncAccept[];
  db: Database;
  logger: SystemLogger;

  constructor(db: Database, logger: SystemLogger) {
    this.db = db;
    this.logger = logger;
  }

  abstract update(
    record: OriginRecord,
    resourcePks: PrimaryKey[],
    matchKey?: string,
  ): Promise<RecordResourceChanged[]>;
  abstract create(
    record: OriginRecord,
    matchKey: string,
  ): Promise<RecordResourceChanged[]>;

  get syncRecordRepo() {
    return this.db.getRepository('userDataSyncRecords');
  }

  get syncRecordResourceRepo() {
    return this.db.getRepository('userDataSyncRecordsResources');
  }
}

#Registrieren von Zielressourcen

registerResource(resource: UserDataResource, options?: ToposortOptions)

import { Plugin } from '@nocobase/server';
import PluginUserDataSyncServer from '@nocobase/plugin-user-data-sync';

class CustomUserResourcePluginServer extends Plugin {
  async load() {
    const userDataSyncPlugin = this.app.pm.get(PluginUserDataSyncServer);
    if (userDataSyncPlugin && userDataSyncPlugin.enabled) {
      userDataSyncPlugin.resourceManager.registerResource(
        new CustomDataSyncResource(this.db, this.app.logger),
      );
    }
  }
}