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הרחבת מקור נתוני סנכרון
TIP

מסמך זה תורגם על ידי בינה מלאכותית. לכל אי דיוק, אנא עיין בגרסה האנגלית

#הרחבת יעדי סנכרון

#סקירה כללית

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