# 影響範囲調査

## 調査目的
Bug-fix No.242の修正において、認証マスタにおける制約変更が既存機能へ与える影響を明確化し、  
関連するModelおよびそれを利用する各機能の修正要否と対応範囲を特定することを目的とする  

## 調査方法
- 対象Modelファイル内のリレーションを確認する  
- Model内リレーションを基点に、関連するControllerファイル、Modelファイルを洗い出し  
- 対象のModelファイル名でgrep検索を実施し、参照箇所を特定  
- Modelが呼び出されているファイル(Controller、service等)を確認  
- 認証マスタのテーブル名でgrep検索を実施し、直接参照している箇所を洗い出し  
- 認証処理に関連するキーワード「authorizer」でgrep検索を実施し、調査漏れがないかを確認  
## 調査結果

### ユーザ一覧>新規追加

#### UserController.php   
- ファイルパス：/app/Models/UserController.php  
- 該当箇所：38行目～、62～76行目付近  
- 該当コード  
```PHP
//38行目～
$users = MUser::with('authorizer')->search($request->all())->sortable()
		->paginate($num);
//62～76行目
$authorizer = MAuthorizer::create([
                'code' => $request->code,
                'email' => $request->email,
                'password' => $request->password,
                'login_status' => $request->login_status,
                'add_user' => Auth::user()->code,
                'mod_user' => Auth::user()->code
            ]);
            $authorizer->user()->create([
                'name' => $request->name,
                'authority' => $request->authority,
                'is_message' => $request->is_message,
                'add_user' => Auth::user()->code,
                'mod_user' => Auth::user()->code
            ]);
```

#### UserRequest.php  
- ファイルパス：/app/Http/Request/Admin/UserRequest.php  
- 該当箇所： 42行目～  
- 該当コード  
```PHP
//42行目～
if(request()->method() === 'PATCH') {
            return array_merge($rules, [
            'email' => 'email:dns,rfc,strict',
            'password' => 'sometimes|required|regex:/^[a-zA-Z0-9]+$/|between:8,20',
            'authority' => new UserRule($this)
            ]);
        } else {
            return array_merge($rules, [
                'code' =>[
                'required',
                'regex:/^[a-zA-Z0-9]{1,12}$/',
                Rule::unique('m_authorizers')->where('login_status', 'admin'),
                ],
                'email' => 'email:dns,rfc,strict|max:50',
                'password' => 'required|regex:/^[a-zA-Z0-9]+$/|between:8,20',
            ]);
        }
    }
```

