58 lines
3.3 KiB
SQL
58 lines
3.3 KiB
SQL
-- 관리자 권한 트리 확장: 게시판관리, 기준정보, 연계관리 섹션 추가
|
|
-- AdminView.tsx의 adminMenuConfig.ts에 정의된 전체 메뉴 구조를 AUTH_PERM_TREE에 반영
|
|
|
|
-- Level 1 섹션 노드 (3개)
|
|
INSERT INTO AUTH_PERM_TREE (RSRC_CD, PARENT_CD, RSRC_NM, RSRC_LEVEL, SORT_ORD) VALUES
|
|
('admin:board-mgmt', 'admin', '게시판관리', 1, 5),
|
|
('admin:reference', 'admin', '기준정보', 1, 6),
|
|
('admin:external', 'admin', '연계관리', 1, 7)
|
|
ON CONFLICT (RSRC_CD) DO NOTHING;
|
|
|
|
-- Level 2 그룹/리프 노드
|
|
INSERT INTO AUTH_PERM_TREE (RSRC_CD, PARENT_CD, RSRC_NM, RSRC_LEVEL, SORT_ORD) VALUES
|
|
('admin:notice', 'admin:board-mgmt', '공지사항', 2, 1),
|
|
('admin:board', 'admin:board-mgmt', '게시판', 2, 2),
|
|
('admin:qna', 'admin:board-mgmt', 'QNA', 2, 3),
|
|
('admin:map-mgmt', 'admin:reference', '지도관리', 2, 1),
|
|
('admin:sensitive-map', 'admin:reference', '민감자원지도', 2, 2),
|
|
('admin:coast-guard-assets', 'admin:reference', '해경자산', 2, 3),
|
|
('admin:collection', 'admin:external', '수집자료', 2, 1),
|
|
('admin:monitoring', 'admin:external', '연계모니터링', 2, 2)
|
|
ON CONFLICT (RSRC_CD) DO NOTHING;
|
|
|
|
-- Level 3 리프 노드
|
|
INSERT INTO AUTH_PERM_TREE (RSRC_CD, PARENT_CD, RSRC_NM, RSRC_LEVEL, SORT_ORD) VALUES
|
|
('admin:map-base', 'admin:map-mgmt', '지도백데이터', 3, 1),
|
|
('admin:map-layer', 'admin:map-mgmt', '레이어', 3, 2),
|
|
('admin:env-ecology', 'admin:sensitive-map', '환경/생태', 3, 1),
|
|
('admin:social-economy', 'admin:sensitive-map', '사회/경제', 3, 2),
|
|
('admin:cleanup-equip', 'admin:coast-guard-assets', '방제장비', 3, 1),
|
|
('admin:asset-upload', 'admin:coast-guard-assets', '자산현행화', 3, 2),
|
|
('admin:dispersant-zone', 'admin:coast-guard-assets', '유처리제 제한구역', 3, 3),
|
|
('admin:vessel-materials', 'admin:coast-guard-assets', '방제선 보유자재', 3, 4),
|
|
('admin:collect-vessel-signal', 'admin:collection', '선박신호', 3, 1),
|
|
('admin:collect-hr', 'admin:collection', '인사정보', 3, 2),
|
|
('admin:monitor-realtime', 'admin:monitoring', '실시간 관측자료', 3, 1),
|
|
('admin:monitor-forecast', 'admin:monitoring', '수치예측자료', 3, 2),
|
|
('admin:monitor-vessel', 'admin:monitoring', '선박위치정보', 3, 3),
|
|
('admin:monitor-hr', 'admin:monitoring', '인사', 3, 4)
|
|
ON CONFLICT (RSRC_CD) DO NOTHING;
|
|
|
|
-- AUTH_PERM: 신규 섹션/그룹 노드에 권한 복사
|
|
-- admin 권한이 있는 역할에 동일하게 부여 (permResolver의 parent READ gate 충족)
|
|
INSERT INTO AUTH_PERM (ROLE_SN, RSRC_CD, OPER_CD, GRANT_YN)
|
|
SELECT ap.ROLE_SN, nc.RSRC_CD, ap.OPER_CD, ap.GRANT_YN
|
|
FROM AUTH_PERM ap
|
|
CROSS JOIN (VALUES
|
|
('admin:board-mgmt'),
|
|
('admin:reference'),
|
|
('admin:external'),
|
|
('admin:map-mgmt'),
|
|
('admin:sensitive-map'),
|
|
('admin:coast-guard-assets'),
|
|
('admin:collection'),
|
|
('admin:monitoring')
|
|
) AS nc(RSRC_CD)
|
|
WHERE ap.RSRC_CD = 'admin'
|
|
ON CONFLICT (ROLE_SN, RSRC_CD, OPER_CD) DO NOTHING;
|