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

Role a oprávnění

Konfigurace rolí
Konfigurace oprávnění
Použití v UI
Sjednocení rolí

Průvodce pro vývojáře

Rozšíření panelu oprávnění

Oddělení

Správa oddělení
Správa rolí v oddělení

Synchronizace uživatelských dat

Správa synchronizace

Zdroj dat

WeChat Work
HTTP API

Průvodce pro vývojáře

Rozšířené zdroje dat pro synchronizaci
Rozšířené cílové zdroje pro synchronizaci
Previous PageHTTP API
Next PageRozšířené cílové zdroje pro synchronizaci
TIP

Tento dokument byl přeložen umělou inteligencí. V případě nepřesností se prosím obraťte na anglickou verzi

#Rozšíření synchronizovaných zdrojů dat

#Přehled

NocoBase umožňuje podle potřeby rozšiřovat typy zdrojů dat pro synchronizaci uživatelských dat.

#Na straně serveru

#Rozhraní zdroje dat

Vestavěný plugin pro synchronizaci uživatelských dat zajišťuje registraci a správu typů zdrojů dat. Chcete-li rozšířit typ zdroje dat, je potřeba zdědit abstraktní třídu SyncSource poskytovanou tímto pluginem a implementovat příslušná standardní rozhraní.

import { SyncSource, UserData } from '@nocobase/plugin-user-data-sync';

class CustomSyncSource extends SyncSource {
  async pull(): Promise<UserData[]> {
    return [];
  }
}

Třída SyncSource obsahuje vlastnost options, která slouží k získání vlastních konfigurací pro zdroj dat.

import { SyncSource, UserData } from '@nocobase/plugin-user-data-sync';

class CustomSyncSource extends SyncSource {
  async pull(): Promise<UserData[]> {
    //...
    const { appid, secret } = this.options;
    //...
    return [];
  }
}

#Popis polí UserData

PolePopis
dataTypeTyp dat, možnosti jsou user a department
uniqueKeyPole s unikátním identifikátorem
recordsDatové záznamy
sourceNameNázev zdroje dat

Pokud je dataType nastaveno na user, pole records obsahuje následující pole:

PolePopis
idID uživatele
nicknamePřezdívka uživatele
avatarAvatar uživatele
emailE-mail
phoneTelefonní číslo
departmentsPole ID oddělení

Pokud je dataType nastaveno na department, pole records obsahuje následující pole:

PolePopis
idID oddělení
nameNázev oddělení
parentIdID nadřazeného oddělení

#Příklad implementace rozhraní zdroje dat

import { SyncSource, UserData } from '@nocobase/plugin-user-data-sync';

class CustomSyncSource extends SyncSource {
  async pull(): Promise<UserData[]> {
    // ...
    const ThirdClientApi = new ThirdClientApi(
      this.options.appid,
      this.options.secret,
    );
    const departments = await this.clientapi.getDepartments();
    const users = await this.clientapi.getUsers();
    // ...
    return [
      {
        dataType: 'department',
        uniqueKey: 'id',
        records: departments,
        sourceName: this.instance.name,
      },
      {
        dataType: 'user',
        uniqueKey: 'id',
        records: users,
        sourceName: this.instance.name,
      },
    ];
  }
}

#Registrace typu zdroje dat

Rozšířený zdroj dat je nutné zaregistrovat v modulu pro správu dat.

import UserDataSyncPlugin from '@nocobase/plugin-user-data-sync';

class CustomSourcePlugin extends Plugin {
  async load() {
    const syncPlugin = this.app.pm.get(
      UserDataSyncPlugin,
    ) as UserDataSyncPlugin;
    if (syncPlugin) {
      syncPlugin.sourceManager.registerType('custom-source-type', {
        syncSource: CustomSyncSource,
        title: 'Custom Source',
      });
    }
  }
}

#Na straně klienta

Uživatelské rozhraní na straně klienta registruje typy zdrojů dat pomocí metody registerType, kterou poskytuje klientské rozhraní pluginu pro synchronizaci uživatelských dat:

import SyncPlugin from '@nocobase/plugin-user-data-sync/client';

class CustomSourcePlugin extends Plugin {
  async load() {
    const sync = this.app.pm.get(SyncPlugin);
    sync.registerType(authType, {
      components: {
        AdminSettingsForm, // Formulář pro správu v backendu
      },
    });
  }
}

#Formulář pro správu v backendu

Horní část poskytuje obecnou konfiguraci zdroje dat, zatímco spodní část umožňuje registraci vlastních konfiguračních formulářů.