logologo
Start
Manual
Utveckling
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
Manual
Utveckling
Plugins
API
logologo
Användare

Roller & behörigheter

Rollkonfiguration
Behörighetskonfiguration
Använd i UI
Rollunion

Utvecklarguide

Utöka behörighetsfältet

Avdelningar

Avdelningshantering
Avdelningsrollhantering

Synkronisering av användardata

Synkroniseringshantering

Datakällor

WeChat Work
HTTP API

Utvecklarguide

Utöka synkroniseringskällor
Utöka synkroniseringsmål
Previous PageRollunion
Next PageAvdelningshantering
TIP

Detta dokument har översatts av AI. För eventuella felaktigheter, se den engelska versionen

#Utöka behörighetsflikar

Nedan ser ni ett exempel på konfigurationsobjektet "Mobilmeny", som visar hur ni utökar en ny behörighetsflik. Resultatet visas i bilden nedan:

20240903210248

Koden ser ut så här:

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

Först behöver ni hämta en instans av PluginACLClient-pluginen (andra sätt att hämta plugin-instanser), och lägga till en ny behörighetsflik med hjälp av metoden settingsUI.addPermissionsTab. I det här exemplet har vi lagt till en behörighetsflik som heter "Mobilmeny".

settingsUI-egenskapens värde är en instans av en klass som heter ACLSettingsUI, och dess typinformation ser ut så här:

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 {
  /**
   * nyckeln för den för närvarande aktiva flikpanelen
   */
  activeKey: string;
  /**
   * den för närvarande valda rollen
   */
  role: Role;
  /**
   * översättningsfunktion
   */
  t: TFunction;
  /**
   * används för att begränsa storleken på behållaren i fliken
   */
  TabLayout: React.FC;
}