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

Rollen & Berechtigungen

Rollenkonfiguration
Berechtigungskonfiguration
Anwendung in der UI
Rollenvereinigung

Entwicklerhandbuch

Berechtigungsleiste erweitern

Abteilungen

Abteilungsverwaltung
Abteilungsrollen-Verwaltung

Benutzerdatensynchronisierung

Synchronisierungsverwaltung

Datenquellen

WeChat Work
HTTP-API

Entwicklerhandbuch

Synchronisationsquellen erweitern
Synchronisationsziele erweitern
Previous PageRollenvereinigung
Next PageAbteilungsverwaltung
KI-Übersetzungshinweis

Diese Dokumentation wurde automatisch von KI übersetzt.

#Berechtigungs-Tabs erweitern

Im Folgenden wird am Beispiel des Konfigurationselements „Mobile Menü“ gezeigt, wie Sie einen neuen Berechtigungskonfigurations-Tab erweitern können. Das Ergebnis sehen Sie in der Abbildung unten:

20240903210248

Der Code sieht wie folgt aus:

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

Zuerst müssen wir eine Instanz des PluginACLClient-Plugins abrufen (weitere Methoden zum Abrufen von Plugin-Instanzen) und über die Methode settingsUI.addPermissionsTab einen neuen Berechtigungskonfigurations-Tab hinzufügen. In diesem Beispiel haben wir einen Berechtigungskonfigurations-Tab namens „Mobile Menü“ hinzugefügt.

Der Wert der Eigenschaft settingsUI ist eine Instanz einer Klasse namens ACLSettingsUI. Die zugehörigen Typinformationen sehen Sie im Folgenden:

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 {
  /**
   * Der Schlüssel des aktuell aktiven Tab-Panels
   */
  activeKey: string;
  /**
   * Die aktuell ausgewählte Rolle
   */
  role: Role;
  /**
   * Übersetzungsfunktion
   */
  t: TFunction;
  /**
   * Wird verwendet, um die Größe des Containers im Tab zu begrenzen
   */
  TabLayout: React.FC;
}