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을 여러 번 호출하고 싶을 거예요.