From 63ccd527bb6070ee968a765fbec7d03ac725fbaa Mon Sep 17 00:00:00 2001 From: "sosuke.iwabuchi" Date: Fri, 30 Jun 2023 09:34:42 +0900 Subject: [PATCH] =?UTF-8?q?=E3=83=AD=E3=82=B0=E3=82=A4=E3=83=B3=E3=83=A6?= =?UTF-8?q?=E3=83=BC=E3=82=B6=E4=BD=9C=E6=88=90=E3=80=80=E5=A5=91=E7=B4=84?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E8=80=85=E4=BD=9C=E6=88=90=E3=83=AB=E3=83=BC?= =?UTF-8?q?=E3=83=88=E3=82=92=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Web/LoginUser/CreateController.php | 20 +++++++++++++++---- .../Controllers/Web/LoginUser/CreateParam.php | 4 ++++ 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/app/Http/Controllers/Web/LoginUser/CreateController.php b/app/Http/Controllers/Web/LoginUser/CreateController.php index d2d6a6b..3f83a3a 100644 --- a/app/Http/Controllers/Web/LoginUser/CreateController.php +++ b/app/Http/Controllers/Web/LoginUser/CreateController.php @@ -7,7 +7,9 @@ use App\Exceptions\AppCommonException; use App\Features\LoginUser; use App\Http\Controllers\Web\IParam; use App\Http\Controllers\Web\WebController; +use App\Logic\User\ContractAdminUserManager; use App\Logic\User\LoginUserManager; +use App\Logic\User\UserManager; use App\Repositories\LoginUserRepository; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; @@ -17,19 +19,20 @@ class CreateController extends WebController use LoginUser; + private UserManager $manager; + public function name(): string { - return "ログインユーザー一覧取得"; + return "ログインユーザー新規登録"; } public function description(): string { - return "ログインユーザー一覧を取得する"; + return "ログインユーザーを新規登録する"; } public function __construct( protected CreateParam $param, - private LoginUserManager $manager ) { parent::__construct(); $this->roleAllow(UserRole::CONTRACT_ADMIN); @@ -44,11 +47,20 @@ class CreateController extends WebController { $param = $this->param; + // マネージャー起動 + if ($param->role === UserRole::CONTRACT_ADMIN) { + if ($this->loginUser()->user()->role === UserRole::SUPER_ADMIN) { + $this->manager = new ContractAdminUserManager(); + } else { + $this->unAuthorizedResponse(); + } + } else { + $this->manager = new LoginUserManager(); + } try { $this->transaction->beginTransaction(); - $currentContract = $this->loginUser()->getCurrentContract(); if (!$currentContract) { throw new AppCommonException("認証不正"); diff --git a/app/Http/Controllers/Web/LoginUser/CreateParam.php b/app/Http/Controllers/Web/LoginUser/CreateParam.php index baa55fb..30cbb12 100644 --- a/app/Http/Controllers/Web/LoginUser/CreateParam.php +++ b/app/Http/Controllers/Web/LoginUser/CreateParam.php @@ -2,14 +2,17 @@ namespace App\Http\Controllers\Web\LoginUser; +use App\Codes\UserRole; use App\Http\Controllers\Web\BaseParam; use App\Models\User; use App\Rules\LoginPassword; +use Illuminate\Validation\Rules\Enum; /** * @property string $email * @property string $name * @property string $password + * @property ?UserRole $role */ class CreateParam extends BaseParam @@ -21,6 +24,7 @@ class CreateParam extends BaseParam User::COL_NAME_EMAIL => $this->str(['email:dns']), User::COL_NAME_NAME => $this->str(), User::COL_NAME_PASSWORD => $this->str([new LoginPassword()]), + User::COL_NAME_ROLE => $this->enum([new Enum(UserRole::class)], true), ]; } }