Skip to main content

Workspace 패널 (Level 4)

📝 초안 (Draft)

이 문서는 검토 중입니다. 내용이 변경될 수 있습니다.

Workspace Admin 전용 패널 기능을 설명합니다.

개요

Workspace 패널은 **Level 4 (Workspace Admin)**을 위한 관리 패널입니다. 워크스페이스 내의 팀/그룹을 관리하고, 팀 리더를 배정하며, 리소스를 할당합니다.

접근 권한

항목
권한 레벨Level 4 (Workspace Admin)
기본 경로/workspace
환경변수PANEL_PATH_WORKSPACE
접근 가능자Level 0, 1, 2, 3, 4

담당 범위

Workspace Admin은 자신의 워크스페이스 내에서만 권한을 가집니다:

Workspace A (담당)
├── Team 1 ✅ 관리 가능
│ ├── Member 1 ✅
│ └── Member 2 ✅
├── Team 2 ✅ 관리 가능
│ └── Member 3 ✅
└── 워크스페이스 설정 ✅ 수정 가능

Workspace B (타 워크스페이스)
└── 모든 데이터 ❌ 접근 불가

주요 기능

1. 팀/그룹 관리

워크스페이스 내의 **팀(그룹)**을 생성하고 관리합니다.

필드설명예시
name팀명"프론트엔드팀"
code팀 코드"FE-TEAM"
description설명"웹 프론트엔드 개발"
max_members최대 멤버 수10
is_active활성화 여부true/false

2. Group Leader 배정

각 팀에 **Level 5 관리자(Group Leader)**를 배정합니다.

관리 기능:

  • Group Leader 계정 생성
  • 담당 팀 배정
  • Impersonate 액션 (팀 리더로 전환)

3. 워크스페이스 설정

워크스페이스의 기본 설정을 관리합니다.

설정설명
워크스페이스 정보이름, 설명
리소스 할당저장 공간, API 호출 제한
기능 토글워크스페이스별 기능 활성화

4. 팀 통계

워크스페이스 내 팀별 현황을 조회합니다.

지표설명
총 팀 수워크스페이스 내 팀 개수
팀별 멤버 수각 팀의 인원
활동 현황최근 활동 로그

파일 구조

app/Filament/Workspace/
├── Resources/
│ ├── TeamResource.php
│ └── GroupLeaderResource.php

├── Pages/
│ ├── Dashboard.php
│ └── WorkspaceSettings.php

└── Widgets/
├── TeamOverviewWidget.php
└── ActivityWidget.php

PanelProvider 설정

// app/Providers/Filament/WorkspacePanelProvider.php

class WorkspacePanelProvider extends PanelProvider
{
public function panel(Panel $panel): Panel
{
return $panel
->id('workspace')
->path(env('PANEL_PATH_WORKSPACE', 'workspace'))
->login()
->colors(['primary' => Color::Indigo])
->discoverResources(
in: app_path('Filament/Workspace/Resources'),
for: 'App\Filament\Workspace\Resources'
)
->authMiddleware([
Authenticate::class,
EnsureUserLevel::class.':0,1,2,3,4', // Level 0-4 접근
]);
}
}

데이터 필터링

Workspace Admin은 자신의 워크스페이스 내 데이터만 조회합니다:

// TeamResource.php
public static function getEloquentQuery(): Builder
{
return parent::getEloquentQuery()
->where('workspace_id', auth()->user()->workspace_id);
}

관련 문서