Files
2026-06-26 13:32:39 +09:00

49 lines
2.5 KiB
Markdown

# Redmine #491 - 권한 추가 Wizard 유효 권한 Preview 설계
## 프로젝트 개요
VPD Backoffice는 Oracle Database VPD/ORDS 기능을 백오피스 권한 테이블로 제어하기 위한 Spring Boot 관리 도구다. 권한 관리 화면은 VPD policy function이 참조할 사용자, 그룹, 역할, 행 규칙, 컬럼 원문 허용 규칙을 저장한다.
## 목표
권한 추가 Wizard에서 저장 전 선택한 역할/객체/행 규칙/컬럼 규칙이 실제로 누구에게 어떤 권한 효과를 주는지 운영자가 확인할 수 있게 한다.
## 문제
현재 preview는 역할, 객체, 행 규칙, 컬럼 정책을 짧게만 보여준다. 그룹 기반 역할 부여가 들어간 상태에서 다음 내용을 저장 전 파악하기 어렵다.
- 선택한 역할이 직접 사용자에게 붙었는지
- 그룹을 통해 어떤 사용자에게 상속되는지
- 선택한 TABLE/VIEW의 컬럼과 행 규칙 대상 컬럼이 무엇인지
- 저장될 VPD filter 조건이 어떤 predicate 모양이 되는지
- 민감 컬럼 중 원문 표시 허용 컬럼과 NULL 처리 대상이 어떻게 갈리는지
## 설계
- `PermissionController`가 사용자-역할, 그룹-역할, 그룹-사용자 데이터를 권한 화면에 추가로 내려준다.
- 역할 `<option>`에 직접 사용자, 역할 보유 그룹, 그룹 상속 사용자 요약을 `data-*`로 넣는다.
- 보호 객체 `<option>`에 전체 컬럼과 마스킹 대상 컬럼 metadata를 유지하고 preview에서 사용한다.
- Wizard 저장 전 검토에 다음 항목을 추가한다.
- 적용 대상 사용자/그룹 요약
- 선택 객체 컬럼 목록
- 행 규칙 predicate preview
- 컬럼 원문 허용/NULL 처리 preview
- DB 스키마 객체처럼 저장 전 컬럼 metadata가 비동기로 조회되는 경우, 기존 `/permissions/object-columns` 응답을 preview에도 반영한다.
## 완료 기준
- 역할 선택 시 직접 사용자, 그룹, 그룹 상속 사용자 요약이 표시된다.
- 객체 선택 시 컬럼 목록과 마스킹 대상 컬럼 목록이 표시된다.
- 행 규칙 추가/수정 시 저장될 predicate preview가 갱신된다.
- 원문 표시 허용 컬럼 입력/버튼 선택 시 NULL 처리 대상 preview가 갱신된다.
- 기존 권한 저장 동작과 검증 로직은 유지된다.
## 검증
- `mvn test`
- Playwright:
- `/permissions`에서 역할 영향도 preview 확인
- 객체 컬럼 preview 확인
- 행 규칙/컬럼 입력 변경 시 preview 갱신 확인
- 390px 모바일 body overflow 없음