logologo
Empezar
Manual
Desarrollo
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
Empezar
Manual
Desarrollo
Plugins
API
logologo
Usuarios

Roles y permisos

Configuración de roles
Configuración de permisos
Aplicar en la UI
Unión de roles

Guía de desarrollo

Extender panel de configuración de permisos

Departamentos

Gestión de departamentos
Gestión de roles de departamento

Sincronización de datos de usuario

Gestión de sincronización

Fuentes de datos

WeCom
API HTTP

Guía de desarrollo

Extender fuente de datos de sincronización
Extender recurso de destino de sincronización
Previous PageExtender fuente de datos de sincronización
Aviso de traducción por IA

Esta documentación ha sido traducida automáticamente por IA.

#Extensión de los recursos de destino de sincronización

#Resumen

NocoBase admite de forma nativa la sincronización de datos de usuario con las tablas de Usuario y Departamento. También le permite extender los recursos de destino para la sincronización de datos, con el fin de escribir datos en otras tablas o realizar un procesamiento personalizado según sus necesidades.

Experimental

La documentación completa está pendiente.

#Interfaz del manejador de recursos de destino

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');
  }
}

#Registro de recursos de destino

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),
      );
    }
  }
}