Add Terms Agreement to Filament Panel with Plugin
AI Store에서 AI코딩으로 만들어진 앱을 만나보세요!
지금 바로 방문하기

필라멘트 패널에 이용 약관 동의 추가 방법

카테고리

프로그래밍/소프트웨어 개발

서브카테고리

웹 개발

대상자

  • Laravel 개발자 (Filament 패널 사용자, SaaS 대시보드 또는 내부 도구 개발자)
  • 난이도: 중간 (Laravel 및 Filament 기초 지식 필요)

핵심 요약

  • 필라멘트-이용약관-가드 플러그인 (filament-terms-guard)를 사용해 필수 체크박스를 추가하여 이용 약관 동의를 강제
  • Term::getCurrentTerm(panelId) 메서드로 현재 패널의 최신 공개된 약관을 가져와 모달로 표시
  • handleRegistration() 메서드에서 사용자에게 동의한 약관 버전을 연결 ($model->terms()->attach(...))

섹션별 세부 요약

1. 플러그인 설치 및 환경 설정

  • .env 파일에 TERMS_GUARD_PANELS=admin 설정 (패널 ID에 맞게 수정)
  • PanelProvider에 플러그인 등록 (공식 가이드 참조)
  • 여러 패널 동시 지원 가능 (예: admin,member,customer)

2. 커스텀 등록 페이지 생성

  • 명령어 php artisan make:filament-page Register로 페이지 생성
  • Filament\Pages\Auth\Register 클래스 확장
  • $view 속성 주석 처리하여 기본 레이아웃 유지

3. 약관 동의 체크박스 구현

  • Term::getCurrentTerm() 메서드로 현재 패널의 약관 가져오기
  • 체크박스 필수 입력으로 설정 (사용자 동의 강제)
  • 모달을 통해 약관 내용 공개일 포함 표시 (예: published_at->translatedFormat('d F Y'))

4. 사용자 등록 처리 로직

  • handleRegistration() 메서드에서 사용자 모델에 약관 버전 연결
  • $model->terms()->attach($this->terms)로 데이터베이스에 기록
  • 약관 테이블은 플러그인 리소스를 통해 관리

5. 패널 제공자 설정 업데이트

  • PanelProvider에서 커스텀 등록 페이지(Register::class) 등록
  • panel()->registration(Register::class) 설정

결론

  • 필수 단계: 플러그인 설치 → 커스텀 등록 페이지 생성 → .env 설정 → 패널 제공자 업데이트
  • 테스트 전 필수 조건: 데이터베이스에 약관 내용 등록 및 공개 (플러그인 관리자 또는 모델을 통해)
  • 실무 팁: Term::getCurrentTerm() 메서드와 모달 내 published_at 날짜 표시를 통해 버전 관리 및 사용자 투명성 강화 가능