본문 바로가기
WIKI 기술 지식 베이스

Permissions Registry 서비스

원문 보기 위키 갱신

이 서비스는 플러그인이 새 권한, 규칙, 리소스 유형을 등록하고 permissions 프레임워크와 통합할 수 있게 해줘요.

출처: 문서

본문

이 서비스는 플러그인이 새 권한, 규칙, 리소스 유형을 등록하고 permissions 프레임워크와 통합할 수 있게 해줘요.

서비스 사용하기

permissionsRegistry 서비스를 사용하는 방법에 대한 자세한 내용은 플러그인 작성자를 위한 권한 가이드를 참고하세요.

기존 플러그인에 새 사용자 지정 권한 규칙을 추가하려는 경우에만 사용자 지정 권한 규칙 가이드를 참고할 수도 있어요.

createPermissionIntegrationRouter에서 마이그레이션하기

이 서비스가 도입되기 전에는 플러그인이 같은 기능을 구현하기 위해 createPermissionIntegrationRouter를 사용했어요. 플러그인을 마이그레이션하려면 라우터에 대한 createPermissionIntegrationRouter 호출을 찾아 제거하되, 그 호출에 전달된 모든 옵션을 복사하세요. 예를 들어 다음과 같아요.

export async function createRouter() {
  const router = Router();
  const permissionIntegrationRouter = createPermissionIntegrationRouter({
    resourceType: RESOURCE_TYPE_MY_RESOURCE,
    permissions: [myResourcePermissions],
    rules: [myResourceRule],
  });
  router.use(permissionIntegrationRouter);
  // ...
}

다음으로 플러그인에 PermissionsRegistryService에 대한 의존성을 추가하고 같은 옵션을 전달하세요.

export const examplePlugin = createBackendPlugin({
  pluginId: 'example',
  register(env) {
    env.registerInit({
      deps: {
        logger: coreServices.logger,
        permissionsRegistry: coreServices.permissionsRegistry,
      },
      async init({ logger, permissionsRegistry }) {
        logger.log('This is a silly example plugin with no functionality');
        permissionsRegistry.addResourceType({
          resourceType: RESOURCE_TYPE_MY_RESOURCE,
          permissions: [myResourcePermissions],
          rules: [myResourceRule],
        });
      },
    });
  },
});

createPermissionIntegrationRouter에 permissions 옵션만 전달했다면 permissionsRegistry.addPermissions를 사용하는 것이 좋아요.

resources 옵션을 통해 createPermissionIntegrationRouter에 여러 리소스 유형을 전달했다면 각 리소스 유형에 대해 permissionsRegistry.addResourceType을 여러 번 호출하고 싶을 거예요.

더 알아보기 (Learn more)