logologo
Úvod
Manuál
Vývoj
Pluginy
API
English
简体中文
日本語
한국어
Deutsch
Français
Español
Português
Русский
Italiano
Türkçe
Українська
Tiếng Việt
Bahasa Indonesia
ไทย
Polski
Nederlands
Čeština
العربية
עברית
हिन्दी
Svenska
Úvod
Manuál
Vývoj
Pluginy
API
logologo
Uživatelé

Role a oprávnění

Konfigurace rolí
Konfigurace oprávnění
Použití v UI
Sjednocení rolí

Průvodce pro vývojáře

Rozšíření panelu oprávnění

Oddělení

Správa oddělení
Správa rolí v oddělení

Synchronizace uživatelských dat

Správa synchronizace

Zdroj dat

WeChat Work
HTTP API

Průvodce pro vývojáře

Rozšířené zdroje dat pro synchronizaci
Rozšířené cílové zdroje pro synchronizaci
Previous PageSjednocení rolí
Next PageSpráva oddělení
TIP

Tento dokument byl přeložen umělou inteligencí. V případě nepřesností se prosím obraťte na anglickou verzi

#Rozšíření záložek konfigurace oprávnění

Níže si na příkladu konfigurační položky „Mobilní menu“ ukážeme, jak přidat novou záložku pro konfiguraci oprávnění. Výsledek je znázorněn na obrázku níže:

20240903210248

Zde je kód:

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

Nejprve potřebujeme získat instanci pluginu PluginACLClient (další metody pro získání instancí pluginů) a pomocí metody settingsUI.addPermissionsTab přidat novou záložku pro konfiguraci oprávnění. V tomto příkladu jsme přidali záložku pro konfiguraci oprávnění s názvem „Mobilní menu“.

Hodnota vlastnosti settingsUI je instance třídy ACLSettingsUI. Její typové informace jsou následující:

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 {
  /**
   * klíč aktuálně aktivního panelu záložky
   */
  activeKey: string;
  /**
   * aktuálně vybraná role
   */
  role: Role;
  /**
   * překladová funkce
   */
  t: TFunction;
  /**
   * slouží k omezení velikosti kontejneru v záložce
   */
  TabLayout: React.FC;
}