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 PageHTTP API
Next Pageהרחבת משאב יעד סנכרון
TIP

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

#הרחבת מקורות נתונים מסונכרנים

#סקירה כללית

NocoBase מאפשרת למשתמשים להרחיב את סוגי מקורות הנתונים לסנכרון נתוני משתמשים, בהתאם לצורך.

#צד השרת

#ממשק מקור הנתונים

התוסף המובנה לסנכרון נתוני משתמשים מספק רישום וניהול עבור סוגי מקורות נתונים. כדי להרחיב סוג של מקור נתונים, עליכם לרשת את המחלקה המופשטת SyncSource המסופקת על ידי התוסף, וליישם את הממשקים הסטנדרטיים הרלוונטיים.

import { SyncSource, UserData } from '@nocobase/plugin-user-data-sync';

class CustomSyncSource extends SyncSource {
  async pull(): Promise<UserData[]> {
    return [];
  }
}

המחלקה SyncSource כוללת מאפיין options המשמש לאחזור הגדרות מותאמות אישית עבור מקור הנתונים.

import { SyncSource, UserData } from '@nocobase/plugin-user-data-sync';

class CustomSyncSource extends SyncSource {
  async pull(): Promise<UserData[]> {
    //...
    const { appid, secret } = this.options;
    //...
    return [];
  }
}

#תיאור שדות UserData

שדהתיאור
dataTypeסוג הנתונים, האפשרויות הן user ו-department
uniqueKeyשדה מזהה ייחודי
recordsרשומות נתונים
sourceNameשם מקור הנתונים

אם dataType הוא user, שדה ה-records מכיל את השדות הבאים:

שדהתיאור
idמזהה משתמש
nicknameכינוי משתמש
avatarתמונת פרופיל משתמש
emailדוא"ל
phoneמספר טלפון
departmentsמערך מזהי מחלקות

אם dataType הוא department, שדה ה-records מכיל את השדות הבאים:

שדהתיאור
idמזהה מחלקה
nameשם מחלקה
parentIdמזהה מחלקת אב

#דוגמה ליישום ממשק מקור הנתונים

import { SyncSource, UserData } from '@nocobase/plugin-user-data-sync';

class CustomSyncSource extends SyncSource {
  async pull(): Promise<UserData[]> {
    // ...
    const ThirdClientApi = new ThirdClientApi(
      this.options.appid,
      this.options.secret,
    );
    const departments = await this.clientapi.getDepartments();
    const users = await this.clientapi.getUsers();
    // ...
    return [
      {
        dataType: 'department',
        uniqueKey: 'id',
        records: departments,
        sourceName: this.instance.name,
      },
      {
        dataType: 'user',
        uniqueKey: 'id',
        records: users,
        sourceName: this.instance.name,
      },
    ];
  }
}

#רישום סוג מקור נתונים

מקור הנתונים המורחב חייב להירשם במודול ניהול הנתונים.

import UserDataSyncPlugin from '@nocobase/plugin-user-data-sync';

class CustomSourcePlugin extends Plugin {
  async load() {
    const syncPlugin = this.app.pm.get(
      UserDataSyncPlugin,
    ) as UserDataSyncPlugin;
    if (syncPlugin) {
      syncPlugin.sourceManager.reigsterType('custom-source-type', {
        syncSource: CustomSyncSource,
        title: 'Custom Source',
      });
    }
  }
}

#צד הלקוח

ממשק המשתמש בצד הלקוח רושם סוגי מקורות נתונים באמצעות שיטת registerType המסופקת על ידי ממשק הלקוח של תוסף סנכרון נתוני המשתמשים:

import SyncPlugin from '@nocobase/plugin-user-data-sync/client';

class CustomSourcePlugin extends Plugin {
  async load() {
    const sync = this.app.pm.get(SyncPlugin);
    sync.registerType(authType, {
      components: {
        AdminSettingsForm, // טופס הגדרות ניהול
      },
    });
  }
}

#טופס הגדרות ניהול

החלק העליון מספק הגדרות כלליות למקור הנתונים, בעוד שהחלק התחתון מאפשר רישום של טופסי הגדרה מותאמים אישית.