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에 적용
역할 합집합

개발 가이드

권한 구성 바 확장

부서

부서 관리
부서 역할 관리

사용자 데이터 동기화

동기화 관리

데이터 소스

WeCom
HTTP API

개발 가이드

동기화 데이터 소스 확장
동기화 대상 리소스 확장
Previous Page역할 합집합
Next Page부서 관리
TIP

이 문서는 AI로 번역되었습니다. 부정확한 내용이 있을 경우 영어 버전을 참조하세요

#권한 설정 탭 확장하기

아래에서는 '모바일 메뉴' 설정 항목을 예시로 들어, 새로운 권한 설정 탭을 확장하는 방법을 보여드립니다. 결과는 다음 이미지와 같습니다:

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 {
  /**
   * 현재 활성화된 탭 패널의 키
   */
  activeKey: string;
  /**
   * 현재 선택된 역할
   */
  role: Role;
  /**
   * 번역 함수
   */
  t: TFunction;
  /**
   * 탭 내 컨테이너의 크기를 제한하는 데 사용됩니다.
   */
  TabLayout: React.FC;
}