logologo
시작
가이드
개발
플러그인
API
홈
English
简体中文
日本語
한국어
Español
Português
Deutsch
Français
Русский
Italiano
Türkçe
Українська
Tiếng Việt
Bahasa Indonesia
ไทย
Polski
Nederlands
Čeština
العربية
עברית
हिन्दी
Svenska
시작
가이드
개발
플러그인
API
홈
logologo
사용자

역할 및 권한

역할 구성
권한 구성
UI에 적용
역할 합집합

개발 가이드

권한 구성 바 확장

부서

부서 관리
부서 역할 관리

사용자 데이터 동기화

동기화 관리

데이터 소스

WeCom
HTTP API

개발 가이드

동기화 데이터 소스 확장
동기화 대상 리소스 확장
Previous Page동기화 데이터 소스 확장
TIP

이 문서는 AI로 번역되었습니다. 부정확한 내용이 있을 경우 영어 버전을 참조하세요

#동기화 대상 리소스 확장

#개요

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