管理者管理機能仕様書
機能概要
管理者管理機能は、ECサイトの管理画面にアクセスする管理者アカウントを管理するための管理画面機能です。管理者の作成、編集、削除、一覧表示などの操作が可能です。
URL: /admin/admins
ナビゲーション: システム管理グループ(ソート順: 7)
技術スタック: Filament v4, Livewire v3
画面構成
一覧画面(List Admins)
管理者の一覧を表示し、検索、ソート、削除などの操作が可能です。
画面レイアウト
- テーブル: 管理者一覧
- ツールバー: 一括削除、ページネーション
テーブルカラム
| カラム名 | 表示内容 | 検索 | ソート | 表示/非表示 |
|---|---|---|---|---|
| 名前 | name |
✅ | ✅ | 常時表示 |
| メールアドレス | email |
✅ | ✅ | 常時表示 |
| 二要素認証タイプ | two_factor_type |
- | ✅ | 常時表示 |
| 作成日時 | created_at |
- | - | 常時表示 |
機能詳細
検索機能
- 名前(name)とメールアドレス(email)で検索可能
- リアルタイム検索(入力と同時にフィルタリング)
ソート機能 - 名前、メールアドレス、二要素認証タイプでソート可能
ページネーション - デフォルト表示件数: 50件 - 表示件数オプション: 10, 20, 30, 40, 50, 100, 150, 200件
一括削除 - 複数レコードを選択して一括削除可能 - 削除確認ダイアログ表示
レコードアクション - 編集 - 削除
作成画面(Create Admin)
新しい管理者を作成するためのフォーム画面です。
フォーム項目
| 項目名 | フィールド名 | 必須 | 最大文字数 | 説明 |
|---|---|---|---|---|
| 名前 | name |
✅ | 255 | 管理者名 |
| メールアドレス | email |
✅ | 255 | メールアドレス(ユニーク) |
| パスワード | password |
✅ | - | パスワード(作成時のみ必須) |
| 二要素認証タイプ | two_factor_type |
- | - | 二要素認証タイプ(表示のみ、編集不可) |
レイアウト構成
┌─────────────────────────────────────────┐
│ 名前 │
│ メールアドレス │
│ パスワード │
│ 二要素認証タイプ(表示のみ) │
└─────────────────────────────────────────┘
バリデーション
| 項目 | ルール |
|---|---|
| 名前 | 必須、最大255文字 |
| メールアドレス | 必須、最大255文字、メール形式、ユニーク |
| パスワード | 必須(作成時のみ) |
| 二要素認証タイプ | 表示のみ、編集不可 |
二要素認証タイプ
- なし (
none): デフォルト - メール (
email): メール認証 - 認証アプリ (
authenticator): 認証アプリ認証
作成後の動作
- 作成成功後、一覧画面にリダイレクト
- 成功通知を表示
編集画面(Edit Admin)
既存の管理者を編集するためのフォーム画面です。
フォーム項目
作成画面と同じフォーム項目を使用します。
バリデーション
作成画面と同じバリデーションを適用します。ただし、メールアドレスのユニークチェックでは現在編集中のレコードを除外します。
パスワード編集
- パスワードフィールドは空欄の場合は更新しない
- パスワードを入力した場合のみ更新
二要素認証タイプ
- 表示のみ(編集不可)
- 実際の設定は別の画面で行う
保存後の動作
- 保存成功後、編集画面にリフレッシュ(リダイレクトなし)
- 成功通知を表示
バリデーション
フォームバリデーション
| フィールド | ルール | エラーメッセージ |
|---|---|---|
name |
required, max:255 |
名前は必須です / 名前は255文字以内で入力してください |
email |
required, email, max:255, unique:admins,email,{id} |
メールアドレスは必須です / メールアドレスの形式が正しくありません / メールアドレスは255文字以内で入力してください / このメールアドレスは既に使用されています |
password |
required(作成時のみ) |
パスワードは必須です(作成時のみ) |
エラーハンドリング
一般的なエラー
- バリデーションエラー: フォーム内にエラーメッセージを表示
- データベースエラー: エラーログに記録し、ユーザーにエラー通知を表示
削除時のエラー
- 削除失敗: エラーログに記録し、ユーザーにエラー通知を表示
- 自分自身の削除: 自分自身のアカウントは削除できない(UI側で制御推奨)
技術仕様
使用技術
- Filament v4: 管理画面フレームワーク
- Livewire v3: リアクティブコンポーネント
- Alpine.js: クライアント側インタラクション(Livewireに同梱)
ファイル構成
app/Admin/Resources/Admins/
├── AdminResource.php # メインリソースクラス
└── Pages/
├── ListAdmins.php # 一覧ページ
├── CreateAdmin.php # 作成ページ
└── EditAdmin.php # 編集ページ
app/Models/
└── Admin.php # モデルクラス
モデル機能
認証機能
- Laravel標準の認証機能を使用
- FilamentUser contractを実装
二要素認証
- two_factor_type カラムで二要素認証タイプを管理
- 実際の認証処理は別の機能で実装
ページネーション設定
デフォルト表示件数: 50件(config/ecspoke.pagination.default_per_page)
表示件数オプション: 10, 20, 30, 40, 50, 100, 150, 200件(config/ecspoke.pagination.per_page_options)
UI/UX仕様
二要素認証タイプ表示 - 日本語で表示(なし、メール、認証アプリ) - 編集不可(表示のみ)
パスワード編集 - 編集時は空欄の場合は更新しない - パスワードを入力した場合のみ更新
セキュリティ
パスワード管理
- パスワードはハッシュ化して保存
- パスワードフィールドは表示されない(入力時のみ表示)
アクセス制御
- 管理者管理機能へのアクセスは権限管理で制御
- 自分自身のアカウントは削除できない(UI側で制御推奨)
関連機能
認証機能
- 管理者は管理画面にログイン可能
- 二要素認証をサポート(設定は別の画面で行う)
参照資料
注意: adminsテーブルのDB定義書は現在作成中です。