Member 패널 (Level 6)
📝 초안 (Draft)
이 문서는 검토 중입니다. 내용이 변경될 수 있습니다.
일반 Member(App) 전용 패널 기능을 설명합니다.
개요
Member 패널(App 패널)은 **Level 6 (Member)**을 위한 사용자 패널입니다. 일반 사용자가 자신의 프로필, 할당된 업무, 알림 등을 관리하는 영역입니다.
접근 권한
| 항목 | 값 |
|---|---|
| 권한 레벨 | Level 6 (Member) |
| 기본 경로 | /app |
| 환경변수 | PANEL_PATH_APP |
| 접근 가능자 | Level 0-6 (모든 인증 사용자) |
범위
Member는 자신의 데이터만 접근할 수 있습니다:
내 데이터 ✅
├── 프로필 ✅ 조회/수정 가능
├── 내 업무 ✅ 조회 가능
├── 내 알림 ✅ 조회 가능
└── 팀 정보 ✅ 조회 가능 (읽기 전용)
다른 사용자 데이터 ❌
└── 접근 불가
주요 기능
1. 개인 대시보드
사용자별 맞춤 대시보드를 제공합니다.
| 위젯 | 설명 |
|---|---|
| 오늘의 할 일 | 오늘 처리해야 할 업무 |
| 최근 활동 | 나의 최근 활동 로그 |
| 팀 공지 | 팀/워크스페이스 공지사항 |
| 알림 | 읽지 않은 알림 목록 |
2. 프로필 설정
개인 정보를 관리합니다.
| 설정 | 설명 |
|---|---|
| 기본 정보 | 이름, 연락처 |
| 비밀번호 변경 | 비밀번호 변경 |
| 프로필 사진 | 아바타 업로드 |
| 알림 설정 | 이메일/푸시 알림 선호도 |
3. 할당된 업무
나에게 할당된 업무를 확인합니다.
| 필드 | 설명 |
|---|---|
| 업무명 | 업무 제목 |
| 상태 | 대기, 진행중, 완료 |
| 마감일 | 완료 기한 |
| 담당자 | 할당한 상위자 |
4. 알림 관리
시스템 알림을 관리합니다.
| 유형 | 설명 |
|---|---|
| 업무 알림 | 새 업무 할당, 마감 임박 |
| 시스템 알림 | 공지사항, 점검 안내 |
| 팀 알림 | 팀원 변동, 팀 공지 |
파일 구조
app/Filament/App/
├── Resources/
│ ├── TaskResource.php # 내 업무 (읽기 전용)
│ └── NotificationResource.php # 알림 관리
│
├── Pages/
│ ├── Dashboard.php # 개인 대시보드
│ └── Profile.php # 프로필 설정
│
└── Widgets/
├── TodayTasksWidget.php
├── RecentActivityWidget.php
└── NotificationWidget.php
PanelProvider 설정
// app/Providers/Filament/AppPanelProvider.php
class AppPanelProvider extends PanelProvider
{
public function panel(Panel $panel): Panel
{
return $panel
->id('app')
->path(env('PANEL_PATH_APP', 'app'))
->login()
->registration() // 회원가입 활성화 (선택)
->passwordReset() // 비밀번호 재설정 활성화
->profile() // 프로필 페이지 활성화
->colors(['primary' => Color::Slate])
->discoverResources(
in: app_path('Filament/App/Resources'),
for: 'App\Filament\App\Resources'
)
->authMiddleware([
Authenticate::class,
// 모든 인증 사용자 접근 가능 (EnsureUserLevel 미사용)
]);
}
}
데이터 필터링
Member는 본인 데이터만 접근합니다:
// TaskResource.php
public static function getEloquentQuery(): Builder
{
return parent::getEloquentQuery()
->where('assigned_to', auth()->id());
}
읽기 전용 설정
Member는 대부분의 데이터를 읽기 전용으로 접근합니다:
public static function canCreate(): bool
{
return false; // 생성 불가
}
public static function canEdit(Model $record): bool
{
return false; // 수정 불가
}
public static function canDelete(Model $record): bool
{
return false; // 삭제 불가
}
상위 패널과의 차이점
| 구분 | 관리 패널 (Level 0-5) | App 패널 (Level 6) |
|---|---|---|
| 목적 | 관리/운영 | 일상 업무 |
| 데이터 범위 | 담당 영역 전체 | 본인만 |
| CRUD | 생성/수정/삭제 가능 | 대부분 읽기 전용 |
| UI | 관리자 스타일 | 사용자 친화적 |
| 대시보드 | 통계/현황 | 개인 업무 |