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איחוד תפקידים
Next Pageניהול מחלקות
TIP

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

#הרחבת לשוניות תצורת הרשאות

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

20240903210248

הקוד הבא:

import { Plugin } from '@nocobase/client';
import PluginACLClient from '@nocobase/plugin-acl/client';

class PluginMobileClient extends Plugin {
  async load() {
    const aclInstance = this.app.pm.get(PluginACLClient);

    aclInstance?.settingsUI.addPermissionsTab(({ t, TabLayout, activeKey }) => ({
      key: 'mobile-menu',
      label: t('Mobile menu', {
        ns: 'plugin-mobile',
      }),
      children: (
        <TabLayout>
          <MenuPermissions />
        </TabLayout>
      ),
    }));
  }
}

ראשית, עלינו לקבל מופע של תוסף ה-PluginACLClient (שיטות נוספות לקבלת מופעי תוספים). לאחר מכן, נוסיף לשונית תצורת הרשאות חדשה באמצעות מתודת ה-settingsUI.addPermissionsTab. בדוגמה זו, הוספנו לשונית תצורת הרשאות בשם "תפריט מובייל".

הערך של מאפיין ה-settingsUI הוא מופע של מחלקה בשם ACLSettingsUI, ומידע הטיפוס שלה מוצג להלן:

import { TabsProps } from 'antd/es/tabs/index';

interface ACLSettingsUI {
  addPermissionsTab(tab: Tab | TabCallback): void;
  getPermissionsTabs(props: PermissionsTabsProps): Tab[];
}

type Tab = TabsProps['items'][0];

type TabCallback = (props: PermissionsTabsProps) => Tab;

interface PermissionsTabsProps {
  /**
   * the key of the currently active tab panel
   */
  activeKey: string;
  /**
   * the currently selected role
   */
  role: Role;
  /**
   * translation function
   */
  t: TFunction;
  /**
   * used to constrain the size of the container in the Tab
   */
  TabLayout: React.FC;
}