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

Ролі та дозволи

Налаштування ролей
Налаштування дозволів
Застосування в UI
Об'єднання ролей

Посібник розробника

Розширення панелі налаштування дозволів

Відділ

Керування відділами
Керування ролями відділу

Синхронізація даних користувачів

Керування синхронізацією

Джерело даних

WeChat Work
HTTP API

Посібник розробника

Розширення джерел даних для синхронізації
Розширення цільових ресурсів для синхронізації
Previous PageРозширення джерел даних для синхронізації
Повідомлення про переклад ШІ

Ця документація була автоматично перекладена штучним інтелектом.

#Розширення цільових ресурсів синхронізації

#Огляд

NocoBase за замовчуванням підтримує синхронізацію даних користувачів у таблиці Користувачі та Відділи. Також ви можете розширити цільові ресурси для синхронізації даних, щоб записувати дані в інші таблиці або виконувати власну обробку за потреби.

Експериментально

Повна документація очікує на доповнення.

#Інтерфейс обробника цільових ресурсів

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

#Реєстрація цільових ресурсів

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