[Developer] #424 support object column row rules

Refs #424
This commit is contained in:
devmrko
2026-06-23 14:24:00 +09:00
parent 97bb0357f9
commit 09e25a2349
11 changed files with 197 additions and 31 deletions

View File

@@ -71,6 +71,7 @@ CREATE TABLE cb_permission (
CREATE TABLE cb_permission_rule (
rule_id NUMBER PRIMARY KEY,
perm_id NUMBER NOT NULL REFERENCES cb_permission(perm_id),
rule_column VARCHAR2(128),
rule_type VARCHAR2(30) NOT NULL,
rule_value VARCHAR2(100)
);
@@ -293,6 +294,24 @@ BEGIN
r.rule_type = ''EMP_NO''
AND r.rule_value = owner_emp_no
)
OR (
r.rule_type = ''=''
AND (
(r.rule_column = ''DOC_ID'' AND TO_CHAR(doc_id) = r.rule_value)
OR (r.rule_column = ''TITLE'' AND title = r.rule_value)
OR (r.rule_column = ''OWNER_EMP_NO'' AND owner_emp_no = r.rule_value)
OR (r.rule_column = ''DEPT_CODE'' AND dept_code = r.rule_value)
)
)
OR (
r.rule_type = ''!=''
AND (
(r.rule_column = ''DOC_ID'' AND TO_CHAR(doc_id) != r.rule_value)
OR (r.rule_column = ''TITLE'' AND title != r.rule_value)
OR (r.rule_column = ''OWNER_EMP_NO'' AND owner_emp_no != r.rule_value)
OR (r.rule_column = ''DEPT_CODE'' AND dept_code != r.rule_value)
)
)
)
)';
END;

View File

@@ -42,6 +42,16 @@ END;
/
PROMPT === Creating protected object whitelist ===
BEGIN
EXECUTE IMMEDIATE 'ALTER TABLE cb_permission_rule ADD (rule_column VARCHAR2(128))';
EXCEPTION
WHEN OTHERS THEN
IF SQLCODE != -1430 THEN
RAISE;
END IF;
END;
/
CREATE TABLE cb_protected_object (
object_id NUMBER PRIMARY KEY,
owner VARCHAR2(128) NOT NULL,