이 시스템은 5개 역할로 동작하며, 권한은 화면 가림이 아니라 DB·API 계층에서 실제로 강제됩니다. 주소창에 주소를 직접 입력하거나 API를 직접 호출해도 권한 밖의 일은 차단됩니다.
| 역할 | 코드 | 하는 일 한 줄 |
|---|
| 상담사 | counselor | 본인 담당 구직자의 상담 예약·진행·이력 관리 |
| 취업지원팀 담당자 | staff | 취업 연계 실무 총괄, 구인처·공고 등록, 알선, 문자발송, 통계 |
| 취업지원팀장 | chief | 팀장 전용 화면 제외, DB 읽기 권한만 선행 부여, 열람은 자료 공유로 대체 |
| 센터지원팀 관리자 | admin | 계정·역할·보안·감사 전담, 실무 데이터(상담 내용·PII·통계)는 열람 불가 |
| 시스템 마스터 | master | 최종 파기(하드딜리트) 실행, 실무 데이터 일괄 변경은 읽기 전용 |
- 상담사: 본인 담당 건만 보고 만질 수 있습니다. 타인 담당 구직자·예약·재동의 대상은 목록에도 안 보이고 직접 접근해도 차단됩니다.
- 담당자(staff): 시스템 실무의 중심입니다. 구인처·공고 등록 권한을 독점하고, 전체 예약을 제어하며, 재동의 문자를 발송합니다.
- 팀장(chief): 팀장 전용 화면은 없습니다. 팀장이 봐야 할 자료는 담당자·관리자가 공유·보고하는 방식으로 대체합니다.
- 관리자(admin): ‘열쇠 관리자’입니다. 계정을 만들고 잠금을 풀고 감사 로그를 보지만, 상담 내용·연락처·실적통계는 열어볼 수 없습니다.
- 마스터(master): 최고 권한이지만 실무 데이터를 마음대로 바꾸지는 못합니다 (읽기 전용). 유일하게 할 수 있는 일은 파기 실행입니다.
| 메뉴 | 상담사 | 담당자 | 팀장 | 관리자 | 마스터 |
|---|
| 대시보드 | 본인 담당 중심 | 센터 전반 실무 흐름 | 읽기 | 시스템 관점 | 전체 |
| 구인처 관리 | 조회 | 등록·수정 | 조회 제한 | 제한적 | 전체 |
| 채용공고 관리 | 조회 | 등록·수정·마감·삭제 | 조회 제한 | 제한적 | 전체 |
| 구직자 관리 | 본인 담당 위주 | 전체 | 읽기 | 제한 (PII 금지) | 전체 |
| 상담 관리 | 본인 담당 예약 | 전체 제어 | 읽기 | 차단 | 전체 |
| 재동의 관리 | 유선확인 필요만 | 전체 + 문자발송 | 조회 전용 | 복구 전용 | 읽기 전용 |
| 알선 관리 | 담당 건 | 전체 제어 | 읽기 | 제한적 | 전체 |
| 업무일지 | 작성·출력 | 검토 | 차단 | 해당 없음 | |
| 실적 통계 | 본인만 | 전체 | 해당 없음 | 차단 | 해당 없음 |
| 시스템 관리 | 메뉴 숨김 | 메뉴 숨김 | 메뉴 숨김 | 계정·감사로그 | + 파기 |
- 전 역할 공통 메뉴: 대시보드 ~ 실적 통계 (단, 차단된 화면은 클릭 시 차단 메시지 표시)
- 시스템 관리 메뉴는 admin·master에게만 보입니다. 나머지 역할은 메뉴 자체가 없고
/system 직접 접근도 차단됩니다
- 이슈 게시판(개발 도구)은 개발서버 전용 메뉴로 운영 서버에는 나타나지 않습니다
- URL 직접 접근 차단: 상담사가
/companies/create·/system을 입력해도 등록·접근되지 않습니다
- ID 변조 열람 차단: 상세 URL의 ID를 타 담당 건으로 바꿔도 데이터가 노출되지 않습니다
- 존재하지 않는 ID: 안전한 404 처리, 스택·내부정보가 노출되지 않습니다
- 타 역할 API 호출 차단: 권한 밖 API를 직접 호출하면 거부됩니다 (예: 상담사의 공고 등록·문자발송, 담당자의 계정 생성·복구, 관리자의 파기)
- 차단 응답에 서버 내부 정보가 담겨 있으면 그것도 제보해 주세요 (보안 이슈)