fix #490: align vpd policy apply hierarchy
This commit is contained in:
@@ -23,7 +23,14 @@
|
||||
<h2>VPD 적용</h2>
|
||||
<a class="btn btn-sm rw-btn-primary" href="/vpd-filter-policies">Filter Policy 관리</a>
|
||||
</div>
|
||||
<p class="text-muted mb-0">VPD는 개별 보호 객체 적용을 기본으로 하고, 같은 정책을 스키마 TABLE/VIEW에 확장할 때만 벌크 적용을 사용합니다.</p>
|
||||
<div class="policy-apply-flow" aria-label="VPD 적용 계층">
|
||||
<span>Filter Function</span>
|
||||
<strong>→</strong>
|
||||
<span>Policy Template</span>
|
||||
<strong>→</strong>
|
||||
<span>TABLE/VIEW 적용</span>
|
||||
</div>
|
||||
<p class="text-muted mb-0">VPD는 개별 보호 객체 적용을 기본으로 하고, 같은 Policy Template을 스키마 TABLE/VIEW에 확장할 때만 벌크 적용을 사용합니다.</p>
|
||||
</section>
|
||||
|
||||
<section class="content-band">
|
||||
@@ -192,9 +199,9 @@
|
||||
</select>
|
||||
</label>
|
||||
<label class="span-2">
|
||||
적용할 Policy / Filter
|
||||
적용할 Policy Template
|
||||
<select class="form-select" data-policy-template-select required>
|
||||
<option value="">등록된 policy/filter 조합 선택</option>
|
||||
<option value="">등록된 policy template 선택</option>
|
||||
<option th:each="template : ${formOptions.policyTemplates()}"
|
||||
th:value="${template.label()}"
|
||||
th:data-policy-name="${template.policyName()}"
|
||||
@@ -207,6 +214,14 @@
|
||||
</label>
|
||||
<input type="hidden" name="policyName" data-policy-template-field="policyName">
|
||||
<input type="hidden" name="functionKey" data-policy-template-field="functionKey">
|
||||
<aside class="policy-template-preview span-2" data-policy-template-summary>
|
||||
<dl>
|
||||
<div><dt>Policy</dt><dd data-policy-template-preview="policyName">선택 전</dd></div>
|
||||
<div><dt>Filter Function</dt><dd data-policy-template-preview="functionKey">선택 전</dd></div>
|
||||
<div><dt>Statements</dt><dd data-policy-template-preview="statementTypes">SELECT</dd></div>
|
||||
<div><dt>Options</dt><dd data-policy-template-preview="options">Enabled: YES / Check: NO</dd></div>
|
||||
</dl>
|
||||
</aside>
|
||||
<div>
|
||||
Statement Types
|
||||
<div class="checkbox-row">
|
||||
@@ -228,7 +243,7 @@
|
||||
data-policy-template-field="updateCheck">
|
||||
<label class="form-check-label" for="vpd-update-check">INSERT/UPDATE에도 predicate check 적용</label>
|
||||
</div>
|
||||
<p class="text-muted small span-2 mb-0">Policy/Filter 조합은 Filter Policy 관리에서 등록/수정합니다. 여기서는 선택한 조합을 대상 TABLE/VIEW에 적용합니다.</p>
|
||||
<p class="text-muted small span-2 mb-0">Policy Template은 policy name과 filter function의 조합입니다. Filter Function은 Filter Policy 관리에서 등록/수정하고, 여기서는 선택한 template을 대상 TABLE/VIEW에 적용합니다.</p>
|
||||
<button class="btn rw-btn-primary" type="submit">개별 객체에 VPD 적용</button>
|
||||
</form>
|
||||
</section>
|
||||
@@ -257,39 +272,52 @@
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<label class="span-2">
|
||||
VPD Filter Function
|
||||
<select class="form-select" name="functionKey">
|
||||
<option value="">기본 권한 함수가 없으면 Filter predicate로 벌크 function 자동 생성</option>
|
||||
<option th:each="function : ${formOptions.functions()}"
|
||||
th:value="${function.value()}"
|
||||
th:text="${function.functionName() == 'CB_AGENT_DOC_VPD_FILTER' ? function.label() + ' / 기본 권한 테이블 필터' : function.label()}"
|
||||
th:selected="${function.value() == formOptions.defaultPermissionFunctionKey()}"></option>
|
||||
<label class="span-2">
|
||||
적용할 Policy Template
|
||||
<select class="form-select" data-policy-template-select required>
|
||||
<option value="">등록된 policy template 선택</option>
|
||||
<option th:each="template : ${formOptions.policyTemplates()}"
|
||||
th:value="${template.label()}"
|
||||
th:data-policy-name="${template.policyName()}"
|
||||
th:data-function-key="${template.functionKey()}"
|
||||
th:data-statement-types="${template.statementTypes()}"
|
||||
th:data-enabled="${template.enabledValue()}"
|
||||
th:data-update-check="${template.updateCheckValue()}"
|
||||
th:text="${template.label()}"></option>
|
||||
</select>
|
||||
</label>
|
||||
<input type="hidden" name="policyName" data-policy-template-field="policyName">
|
||||
<input type="hidden" name="functionKey" data-policy-template-field="functionKey">
|
||||
<aside class="policy-template-preview span-2" data-policy-template-summary>
|
||||
<dl>
|
||||
<div><dt>Policy</dt><dd data-policy-template-preview="policyName">선택 전</dd></div>
|
||||
<div><dt>Filter Function</dt><dd data-policy-template-preview="functionKey">선택 전</dd></div>
|
||||
<div><dt>Statements</dt><dd data-policy-template-preview="statementTypes">SELECT</dd></div>
|
||||
<div><dt>Options</dt><dd data-policy-template-preview="options">Enabled: YES / Check: NO</dd></div>
|
||||
</dl>
|
||||
</aside>
|
||||
<div>
|
||||
Statement Types
|
||||
<div class="checkbox-row">
|
||||
<label class="form-check" th:each="statement : ${formOptions.statementTypes()}">
|
||||
<input class="form-check-input" type="checkbox" name="statementTypes"
|
||||
th:value="${statement}" th:checked="${statement == 'SELECT'}">
|
||||
th:value="${statement}" th:checked="${statement == 'SELECT'}"
|
||||
data-policy-template-statement>
|
||||
<span class="form-check-label" th:text="${statement}">SELECT</span>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-check align-self-end">
|
||||
<input class="form-check-input" id="bulk-vpd-enabled" type="checkbox" name="enabled" value="true" checked>
|
||||
<input class="form-check-input" id="bulk-vpd-enabled" type="checkbox" name="enabled" value="true" checked
|
||||
data-policy-template-field="enabled">
|
||||
<label class="form-check-label" for="bulk-vpd-enabled">등록 즉시 활성화</label>
|
||||
</div>
|
||||
<div class="form-check span-2">
|
||||
<input class="form-check-input" id="bulk-vpd-update-check" type="checkbox" name="updateCheck" value="true">
|
||||
<input class="form-check-input" id="bulk-vpd-update-check" type="checkbox" name="updateCheck" value="true"
|
||||
data-policy-template-field="updateCheck">
|
||||
<label class="form-check-label" for="bulk-vpd-update-check">INSERT/UPDATE에도 predicate check 적용</label>
|
||||
</div>
|
||||
<label class="span-2">
|
||||
Filter predicate
|
||||
<textarea class="form-control" id="bulk-vpd-filter-predicate" name="filterPredicate" rows="4"
|
||||
placeholder="기존 Function을 선택하지 않으면 이 predicate로 스키마 공통 function을 생성합니다."></textarea>
|
||||
</label>
|
||||
<p class="text-muted small span-2 mb-0">벌크 적용은 선택한 Policy Template을 스키마의 TABLE/VIEW 목록에 적용합니다. Filter Function을 직접 선택하거나 predicate를 입력하지 않습니다.</p>
|
||||
<button class="btn rw-btn-primary" type="submit">스키마 TABLE/VIEW에 VPD 일괄 적용</button>
|
||||
</form>
|
||||
</details>
|
||||
|
||||
Reference in New Issue
Block a user