Skip to content

HBAD220_역할 관리·권한 트리

(Hereby) 관리자 패널 > 인사 관리 > 역할 관리

메타앱: 관리자 패널 (포트 4001)대상 사용자: 조건1 [최고 관리자] / 조건2 [인사 관리자] (권한 "역할 관리")프로토타입: TBU관련 정책: [[POL_권한(RBAC)]] · [[POL_역할 관리]] · [[POL_급여정본경계]]Status: reviewOwner: 카나

개요

역할 관리는 테넌트 커스텀 역할(roles)과 세분화 권한 트리(permissions — 리소스 × 액션 × scope)를 관리한다. 역할 카드 목록 + 역할 추가/수정 모달(권한 선택 트리)로 구성된다. 권한은 리소스(약 33종) × 액션(관리/조회/수정/승인/계산) × scope(본인/팀/전체) 조합의 PermissionToken이다 (예: 급여담당 매니저 = 53개 권한 선택됨). 권한 라벨 ↔ 급여 시트(HBHR) 매핑: 전체확정 → "급여 승인", 컬럼 계산 → "급여 계산", 시트 편집 → "급여 관리", 조회 → "급여 조회" ([[POL_급여정본경계]]). 내부 토큰 key(payroll:*)는 추정.

문서 히스토리

  • 2026-07-06 최초 작성 - 카나/콸
  • 2026-07-13 버튼 행동 명세 보강 - 카나/콸
  • 2026-07-21 GC700 깊이 재작성 (권한 트리 n/m 카운터 프로브 반영) - 카나/콸
  • 2026-07-21 셀 스타일 확정판 적용 (콸 승인) - 카나/PM

Data I/O

Server → Client

변수

메타${roles}
메타${permission_tree}
메타${role_permissions}

Client → Server

액션전달 값tRPC procedure권한 토큰
역할 생성/수정역할명 · 설명 · 상태 · 권한[]sdk.role.upsert() (추정)role:write (라벨 "역할 관리", 추정)
역할 삭제roleIdsdk.role.delete() (추정)role:write (추정)
전체 선택/해제permission[] 토글(클라 트리 조작)

메인 화면 사양표 (역할 관리)

번호항목/기능명타입사양 및 기능 설명연관/영향 범위비고
00노출 조건-조건1 [역할 관리 권한] 보유 시 사이드바 인사 관리 > "역할 관리" 노출. 미보유 시 hide[[HBAD100_App Shell·사이드바]]
01초기 상태Output• 역할 카드 목록 표시 (필터 "전체")
10역할 카드 목록List• 테넌트 커스텀 역할을 카드로 나열: 역할명 / 설명 / 활성 배지 / 편집 / 삭제 / 펼침. 라이브 카드: 사용자 / 급여담당 매니저 / test / test
 - CASE01 [활성]: 정상 표기
 - CASE02 [비활성]: 카드 회색 처리
roles테넌트 커스텀
10-E목록 EmptyState• 검색 결과 0건 시 "검색 결과가 없어요" (정책 문구). 라이브 원문 프로브 미확인TBU (라이브 확인 필요)
ㄴ11목록 컨트롤Button• 목록 상단 컨트롤: "+ 역할 추가" / 상태 필터(전체/활성/비활성) / 역할 검색(placeholder "역할") / 페이지네이션 "총 4건 중 1-4건"
• "+ 역할 추가" 클릭 시: "역할 추가" 모달(신규) 노출
페이지네이션
ㄴ12편집Button• 카드의 역할 수정 진입 버튼. 원문 "편집"
• 클릭 시: "역할 수정" 모달 노출 (기존값 프리필)
roles / role_permissions
ㄴ13삭제Button• 카드의 역할 삭제 버튼(파괴적—기존 기록). 원문 "삭제"
• 클릭 시: 컨펌 후 삭제
 - CASE01 [일반 역할]: 삭제 가능
 - CASE02 [최고 관리자(admin) 역할]: 삭제 버튼 비활성 + 툴팁(정책 "최고 관리자는 삭제할 수 없어요.")
 - CASE03 [해당 역할 보유 직원 존재]: 정책상 삭제 불가 — 라이브 실차단 문구 프로브 미확인
rolesadmin 차단은 정책·툴팁 TBU
ㄴ14펼치기Toggle• 카드 권한 요약을 인라인으로 여닫는 토글, 기본 닫힘. 원문 "펼치기"
• 클릭 시: 카드 권한 요약 섹션 펼침(인라인)
role_permissions

역할 추가·수정 모달 사양표

번호항목/기능명타입사양 및 기능 설명연관/영향 범위비고
00노출 조건-• "+ 역할 추가"(신규) 또는 카드 "편집"(수정) 클릭 시 노출. 모달 제목: 신규 "역할 추가" / 편집 "역할 수정"추가/편집 공용
10역할명 *Input• 역할 이름을 지정하는 필수 항목. 원문 "역할명 *", placeholder "역할"
• 입력 시: 값 없음이면 저장 버튼 비활성
roles.name필수
20설명Input• 역할 설명을 기록하는 선택 항목. 원문 "설명", placeholder "설명"
• 입력 시: 설명 기록
roles.description (추정)
30상태Dropdown• 역할 활성/비활성 상태를 지정, 기본 "활성". 원문 "활성" / "비활성"
• 선택 시: 상태 확정. 값 없음: 기본 활성
roles.isActive값 없음: 기본 활성
40권한 선택 트리Checkbox Tree• 리소스 그룹 → 액션 체크박스로 권한을 선택하는 트리. 원문 "권한 선택". 그룹별 선택 카운터 "{선택}/{전체}" (예 "수당 0/2", "근태 0/7", "직원 0/6", "문서 0/5", "부서 0/3", "연차/휴가 0/4")
• 선택 시: 해당 권한 토큰 체크. 상단 "전체 선택" 토글 — CASE01 [해제 상태]: 전체 선택 / CASE02 [선택 상태]: 전체 해제
permissions · role_permissions약 33 리소스
ㄴ41선택 카운트Text• 저장 시 "{n}개 권한 선택됨" (급여담당 매니저 = 53개). 그룹별 "{n}/{m}" 실시간 갱신role_permissions
50admin 역할 편집 제약-• CASE01 [최고 관리자(admin) 역할 수정 모달]: 상태·권한 선택 수정 불가(정책). 역할명·설명은 공통roles정책 근거, 라이브 프로브 미확인
60저장Button• 선택 권한으로 역할을 확정하는 버튼. 원문 "저장"
• 클릭 시: role_permissions 갱신
 - CASE01 [성공]: 저장 후 모달 닫힘
 - CASE02 [역할명 미입력]: 버튼 비활성
 - CASE03 [수정 없음]: 버튼 비활성(편집)
role_permissions실패 TBU
70취소Button• 변경 없이 모달을 닫는 버튼. 원문 "취소"
• 클릭 시: 모달 닫힘
80이탈 가드Dialog• dirty 상태 이탈 시 노출되는 확정 게이트. 원문 "변경된 내용을 저장하지 않고 나가시겠어요?" (계속 편집 / 나가기)7/10 확인 (확정 게이트)

권한 카탈로그 (리소스 × 액션 × scope) — 라이브 확인

리소스액션(scope)그룹 카운트
수당관리 / 조회0/2
공제관리 / 조회0/2
급여승인 / 계산 / 관리 / 조회 / 조회(본인)(프로브 하단 미노출)
호봉관리 / 조회
고정 인센티브관리 / 조회0/2
인센티브승인(팀) / 조회 / 조회(본인) / 조회(팀) / 수정 / 수정(본인)
연말정산관리 / 조회
근태승인 / 관리 / 조회 / 조회(본인) / 조회(팀) / 수정 / 수정(본인)0/7
초과근무승인(팀) / 관리 / 조회 / 조회(본인) / 조회(팀) / 수정 / 수정(본인)
외근승인(팀) / 관리 / 조회 / 조회(본인) / 조회(팀) / 수정 / 수정(본인)
연차/휴가승인(팀) / 조회(본인) / 조회(팀) / 수정(본인)0/4
휴가 신청승인 / 관리 / 조회 / 수정
간호 스케줄관리 / 조회
스케줄조회(전체/본인/팀) / 수정(전체/본인/팀)
직원관리 / 조회 / 조회(본인) / 조회(팀) / 수정 / 수정(본인)0/6
부서관리 / 조회 / 수정0/3
관리 / 조회
역할관리 / 조회
자격증조회(본인) / 수정(본인)0/2
교육조회(본인) / 수정(본인)0/2
교육비 지원관리 / 조회0/2
문서관리 / 조회 / 조회(본인) / 수정 / 수정(본인)0/5
대화조회 / 수정0/2
메시지조회 / 수정
알림조회 / 조회(본인) / 수정 / 수정(본인)
총무관리 / 조회 / 수정
재고관리 / 조회
퇴직관리 / 조회
기관조회 / 수정
파일조회 / 수정
설정수정
시스템시스템 관리자

scope 체계

scope범위비고
본인자기 데이터만최하위
소속 팀 범위중간
전체테넌트 전체최상위

권한·상태 분기 요약

시나리오트리거결과 화면비고
CASE01 [역할 추가]"+ 역할 추가"역할 추가 모달 (신규)권한 "역할 관리"
CASE02 [권한 저장]권한 트리 선택 → 저장role_permissions 갱신, "{n}개 권한 선택됨"
CASE03 [미저장 이탈]dirty 후 닫기가드 "변경된 내용을 저장하지 않고 나가시겠어요?" (계속 편집 / 나가기)7/10 확인
CASE04 [admin 역할]삭제/수정 시도삭제 버튼 비활성(툴팁) · 상태/권한 수정 불가정책 근거, 라이브 TBU

Open Question

  • 권한 토큰 내부 key 실제 값 (급여:승인 등 라벨만 확인) = TBU
  • 액션 라벨(관리/조회/수정/승인/계산) 최종 상하관계·포함 규칙 = TBU (콸도 미확정)
  • 리소스 총 개수 확정 (약 33 중 census 32건 인용) = TBU
  • 팀 권한(team_permissions) ↔ 역할 권한 병합 우선순위 = TBU
  • 역할 저장 실패·역할명 중복 에러 동작 (라이브 프로브 없음) = TBU
  • 목록 Empty("검색 결과가 없어요") 라이브 원문 = TBU
  • admin 역할 삭제 툴팁·수정 제약 라이브 확인 = TBU