Skip to main content

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관리자 스타일사용자 친화적
대시보드통계/현황개인 업무

관련 문서