From cd7860e2533b535547e9c5a1ebab0438a15a6fd2 Mon Sep 17 00:00:00 2001 From: devmrko Date: Fri, 26 Jun 2026 13:32:39 +0900 Subject: [PATCH] fix #491: add permission effective preview --- .../README.md | 48 ++++++++ .../web/PermissionController.java | 72 ++++++++++- src/main/resources/static/css/app.css | 27 ++++ src/main/resources/static/js/app.js | 116 ++++++++++++++++-- src/main/resources/templates/permissions.html | 28 ++++- 5 files changed, 277 insertions(+), 14 deletions(-) create mode 100644 docs/design/491-permission-effective-preview/README.md diff --git a/docs/design/491-permission-effective-preview/README.md b/docs/design/491-permission-effective-preview/README.md new file mode 100644 index 0000000..9161733 --- /dev/null +++ b/docs/design/491-permission-effective-preview/README.md @@ -0,0 +1,48 @@ +# Redmine #491 - 권한 추가 Wizard 유효 권한 Preview 설계 + +## 프로젝트 개요 + +VPD Backoffice는 Oracle Database VPD/ORDS 기능을 백오피스 권한 테이블로 제어하기 위한 Spring Boot 관리 도구다. 권한 관리 화면은 VPD policy function이 참조할 사용자, 그룹, 역할, 행 규칙, 컬럼 원문 허용 규칙을 저장한다. + +## 목표 + +권한 추가 Wizard에서 저장 전 선택한 역할/객체/행 규칙/컬럼 규칙이 실제로 누구에게 어떤 권한 효과를 주는지 운영자가 확인할 수 있게 한다. + +## 문제 + +현재 preview는 역할, 객체, 행 규칙, 컬럼 정책을 짧게만 보여준다. 그룹 기반 역할 부여가 들어간 상태에서 다음 내용을 저장 전 파악하기 어렵다. + +- 선택한 역할이 직접 사용자에게 붙었는지 +- 그룹을 통해 어떤 사용자에게 상속되는지 +- 선택한 TABLE/VIEW의 컬럼과 행 규칙 대상 컬럼이 무엇인지 +- 저장될 VPD filter 조건이 어떤 predicate 모양이 되는지 +- 민감 컬럼 중 원문 표시 허용 컬럼과 NULL 처리 대상이 어떻게 갈리는지 + +## 설계 + +- `PermissionController`가 사용자-역할, 그룹-역할, 그룹-사용자 데이터를 권한 화면에 추가로 내려준다. +- 역할 `

선택한 역할의 민감도 허용 상한도 preview에 반영됩니다.

+
+
선택 역할 영향도
+
+
직접 사용자
-
+
역할 보유 그룹
-
+
그룹 상속 사용자
-
+
+
@@ -79,7 +90,8 @@ @@ -87,11 +99,19 @@

DB 스키마 객체를 선택하면 저장 시 보호 객체가 자동 등록됩니다.

+
+
선택 객체 컬럼
+
+
전체 컬럼
-
+
마스킹 대상
-
+
+
@@ -170,8 +190,12 @@
역할
-
민감도 상한
-
보호 객체
-
+
적용 대상
-
+
객체 컬럼
-
행 접근
-
+
VPD predicate 예상
-
권한별 컬럼 마스킹
-
+
NULL 처리 예상
-