logologo
Começar
Manual
Desenvolvimento
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
Começar
Manual
Desenvolvimento
Plugins
API
logologo
Usuários

Funções e permissões

Configuração de função
Configuração de permissão
Aplicar na UI
União de funções

Guia de Desenvolvimento

Estender barra de configuração de permissões

Departamentos

Gerenciamento de departamentos
Gerenciamento de funções de departamento

Sincronização de dados de usuário

Gerenciamento de sincronização

Fontes de Dados

WeCom
API HTTP

Guia de Desenvolvimento

Estender fonte de dados de sincronização
Estender recurso de destino de sincronização
Previous PageEstender fonte de dados de sincronização
Aviso de tradução por IA

Esta documentação foi traduzida automaticamente por IA.

#Estendendo Recursos de Destino para Sincronização

#Visão Geral

Por padrão, o NocoBase oferece suporte à sincronização de dados de usuário para as tabelas de Usuário e Departamento. Ele também permite estender os recursos de destino para a sincronização de dados, possibilitando a escrita de dados em outras tabelas ou a execução de processamento personalizado conforme sua necessidade.

Experimental

A documentação completa está pendente.

#Interface do Manipulador 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');
  }
}

#Registrando 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)
    }
  }
}