권한 시스템
📝 초안 (Draft)
이 문서는 검토 중입니다. 내용이 변경될 수 있습니다.
Multi-SaaS Kit의 권한 시스템 (Level 0~6, ADR-058) 개념과 사용법을 설명합니다.
개요
Multi-SaaS Kit은 **권한 시스템 (Level 0~6, ADR-058)**을 사용합니다. 숫자가 낮을수록 높은 권한을 가지며, 상위 권한은 하위 권한의 모든 기능에 접근할 수 있습니다.
Level 0 (Platform Admin) ← 최고 권한
↓
Level 1 (SaaS Admin)
↓
Level 2 (Tenant Admin)
↓
Level 3 (Organization Admin)
↓
Level 4 (Workspace Admin)
↓
Level 5 (Group Leader)
↓
Level 6 (Member) ← 기본 권한
권한 분류 (Level 0~6) 테이블
| Level | 명칭 | 범위 | 주요 역할 |
|---|---|---|---|
| 0 | Platform Admin | 전체 플랫폼 | 시스템 운영, 모든 데이터 접근 |
| 1 | SaaS Admin | 전체 플랫폼 | SaaS 제품 관리, 테넌트 생성 |
| 2 | Tenant Admin | 테넌트 내 | 고객사 관리자, 조직 관리 |
| 3 | Organization Admin | 조직 내 | 조직/부서 관리 |
| 4 | Workspace Admin | 워크스페이스 내 | 프로젝트/작업 공간 관리 |
| 5 | Group Leader | 그룹 내 | 팀/그룹 리더 |
| 6 | Member | 본인 | 일반 사용자 |
레벨별 상세 설명
Level 0: Platform Admin
플랫폼 운영자로서 시스템 전체를 관리합니다.
| 권한 | 설명 |
|---|---|
| 전체 데이터 접근 | 모든 테넌트의 데이터 조회/수정 |
| 테넌트 격리 우회 | RLS 정책 우회 가능 |
| 시스템 설정 | 플랫폼 전체 설정 변경 |
| 사용자 전환 | 모든 사용자로 전환(Impersonate) |
// Level 0 확인
if ($user->isPlatformAdmin()) {
// 플랫폼 전체 관리 기능
}
Level 1: SaaS Admin
SaaS 서비스 관리자로서 여러 테넌트를 관리합니다.
| 권한 | 설명 |
|---|---|
| 테넌트 관리 | 테넌트 생성/수정/삭제 |
| 테넌트 격리 우회 | RLS 정책 우회 가능 |
| 제품 설정 | SaaS 제품별 설정 |
| 사용자 전환 | Level 2 이하 사용자로 전환 |
// Level 1 이상 확인
if ($user->isSaasAdmin()) {
// SaaS 관리 기능
}
Level 2: Tenant Admin
테넌트(고객사) 관리자로서 자신의 테넌트를 관리합니다.
| 권한 | 설명 |
|---|---|
| 조직 관리 | 테넌트 내 조직 생성/관리 |
| 사용자 관리 | 테넌트 내 사용자 초대/관리 |
| 설정 관리 | 테넌트 설정 변경 |
| 데이터 접근 | 자신의 테넌트 데이터만 |
// Level 2 이상 확인
if ($user->isTenantAdmin()) {
// 테넌트 관리 기능
}
테넌트 격리
Level 2 이하는 자신의 테넌트 데이터만 접근할 수 있습니다. RLS(Row-Level Security)가 자동으로 적용됩니다.