Skip to content

[ユーザ管理] デフォルト項目で正規表現バリデーション設定を可能にしました#2239

Merged
masaton0216 merged 7 commits intomasterfrom
feature/user-manage-default-column-validation
Oct 27, 2025
Merged

[ユーザ管理] デフォルト項目で正規表現バリデーション設定を可能にしました#2239
masaton0216 merged 7 commits intomasterfrom
feature/user-manage-default-column-validation

Conversation

@masaton0216
Copy link
Contributor

@masaton0216 masaton0216 commented Aug 5, 2025

概要

  • 顧客からの要望「ログインIDで電話番号やメールアドレスの入力を防止したい」に対応。これまでデフォルト項目では管理画面からのバリデーション設定ができませんでした。
  • ユーザ管理の項目設定において、デフォルト項目(ユーザ名、ログインID、メールアドレス)でも正規表現による入力制限設定ができるようになりました。

変更内容

🎯 主な機能追加

  • デフォルト項目のバリデーション設定対応
    • ログインID、ユーザ名、メールアドレスの詳細編集画面で「チェック処理の設定」エリアを表示
      • ひとまず要求にあった正規表現のみ追加
    • 既存の基本バリデーション(必須、重複チェック等)は維持

🔧 技術的改善

  • コード共通化とリファクタリング

    • RegisterController、UserManage、ProfileMypageの重複バリデーション処理を統合
    • UsersTool::buildValidatorArray()メソッドを新規作成(デフォルト項目+任意項目用)
    • UsersTool::getDefaultColumnAdditionalRules()メソッドを追加(デフォルト項目用)
    • マッピング配列パターンを採用し、switch文の重複を排除
  • Bladeテンプレートの最適化

    • UserColumnType::supportsValidationSettings()メソッドを追加
    • 冗長な入れ子条件を削除
  • テストカバレッジの追加

    • UsersToolTest.php を新規作成(22テスト、70アサーション)

使用方法

  1. 管理画面 → ユーザ管理 → 項目設定 → 詳細編集
  2. ログインID等のデフォルト項目を選択
  3. 「チェック処理の設定」→「正規表現」欄で入力制限を設定

テスト確認項目

  • デフォルト項目の詳細編集画面に「チェック処理の設定」エリアが表示される
  • 正規表現バリデーションが正常に動作する
  • 既存のユーザ登録機能(RegisterController)が正常動作する
  • 既存のユーザ更新機能(UserManage)が正常動作する
  • マイページでのプロフィール更新が正常動作する
  • エラーメッセージが適切に表示される

レビュー完了希望日

なし

関連PR/Issues

OW-2681

DB変更の有無

なし

@masaton0216 masaton0216 self-assigned this Aug 5, 2025
@masaton0216 masaton0216 added the enhancement 機能強化 label Aug 5, 2025
@masaton0216 masaton0216 marked this pull request as ready for review October 27, 2025 04:19
@masaton0216 masaton0216 merged commit abcfe7f into master Oct 27, 2025
1 check passed
@masaton0216 masaton0216 deleted the feature/user-manage-default-column-validation branch October 27, 2025 04:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement 機能強化

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant