Consolidate data access control backoffice updates
This commit is contained in:
@@ -13,4 +13,69 @@ public record PermissionView(
|
||||
String filterPreview,
|
||||
String nullPolicyPreview
|
||||
) {
|
||||
|
||||
public String businessRuleSummary() {
|
||||
if (rules == null || rules.isBlank()) {
|
||||
return "-";
|
||||
}
|
||||
return java.util.Arrays.stream(rules.split(","))
|
||||
.map(String::trim)
|
||||
.filter(value -> !value.isBlank())
|
||||
.map(PermissionView::businessRuleLabel)
|
||||
.collect(java.util.stream.Collectors.joining(System.lineSeparator() + "AND "));
|
||||
}
|
||||
|
||||
public String storedRuleSummary() {
|
||||
return rules == null || rules.isBlank() ? "-" : rules;
|
||||
}
|
||||
|
||||
public String vpdMappingSummary() {
|
||||
return filterPreview == null || filterPreview.isBlank() ? "-" : filterPreview;
|
||||
}
|
||||
|
||||
public String columnControlSummary() {
|
||||
if (visibleColumns == null || visibleColumns.isBlank()) {
|
||||
return "컬럼 원문/마스킹은 컬럼 마스킹에서 관리";
|
||||
}
|
||||
return "기존 권한별 표시 예외 값: " + visibleColumns
|
||||
+ " · 신규 컬럼 제어는 컬럼 마스킹에서 관리";
|
||||
}
|
||||
|
||||
private static String businessRuleLabel(String rawRule) {
|
||||
String upper = rawRule.toUpperCase(java.util.Locale.ROOT);
|
||||
if ("ALL".equals(upper)) {
|
||||
return "전체 행";
|
||||
}
|
||||
if (upper.contains(" TOKEN_SUBJECT")) {
|
||||
return "토큰으로 식별된 이해관계자 본인 행";
|
||||
}
|
||||
if (upper.contains(" OWN_CONTRACT")) {
|
||||
return "담당 설계사 본인 계약";
|
||||
}
|
||||
if (upper.contains(" CHANNEL_CONTRACT")) {
|
||||
return "토큰 사용자의 채널 계약";
|
||||
}
|
||||
if (upper.contains(" OWN_CUSTOMER")) {
|
||||
return "담당 설계사 본인 계약에 연결된 고객/청구/외부보유";
|
||||
}
|
||||
if (upper.contains(" CHANNEL_CUSTOMER")) {
|
||||
return "토큰 사용자 채널 계약에 연결된 고객/청구/외부보유";
|
||||
}
|
||||
if (upper.contains(" STATIC_SQL ")) {
|
||||
return "정적 SQL 조건: " + rawRule.replaceFirst("(?i)^\\s*STATIC_SQL\\s+", "");
|
||||
}
|
||||
if (upper.startsWith("STATIC_SQL ")) {
|
||||
return "정적 SQL 조건: " + rawRule.substring("STATIC_SQL ".length());
|
||||
}
|
||||
if (upper.contains(" MY_DEPT")) {
|
||||
return "내 부서 행";
|
||||
}
|
||||
if (upper.contains(" SELF")) {
|
||||
return "내 사번/소유자 행";
|
||||
}
|
||||
if (upper.contains(" TAG ")) {
|
||||
return "태그 조건: " + rawRule;
|
||||
}
|
||||
return rawRule;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user