diff --git a/app/Http/Controllers/Web/Auth/ChangeContractController.php b/app/Http/Controllers/Web/Auth/ChangeContractController.php new file mode 100644 index 0000000..cb1007d --- /dev/null +++ b/app/Http/Controllers/Web/Auth/ChangeContractController.php @@ -0,0 +1,46 @@ +roleAllow(UserRole::SUPER_ADMIN); + } + + protected function run(Request $request): JsonResponse + { + $param = $this->param; + + $this->loginUser()->setCurrentContractId($param->contractId); + + $me = $this->me(); + + if ($me !== null) { + return $this->successResponse($me); + } + + return $this->failedResponse(); + } +} diff --git a/app/Http/Controllers/Web/Auth/ChangeContractParam.php b/app/Http/Controllers/Web/Auth/ChangeContractParam.php new file mode 100644 index 0000000..6c80e99 --- /dev/null +++ b/app/Http/Controllers/Web/Auth/ChangeContractParam.php @@ -0,0 +1,19 @@ + $this->str(true), + ]; + } +} diff --git a/app/Http/Controllers/Web/Auth/LoginController.php b/app/Http/Controllers/Web/Auth/LoginController.php index bd87874..d007fa1 100644 --- a/app/Http/Controllers/Web/Auth/LoginController.php +++ b/app/Http/Controllers/Web/Auth/LoginController.php @@ -42,6 +42,8 @@ class LoginController extends WebController 'password' => $param->password, ])) { + $this->loginUser()->setCurrentContractId(null); + $me = $this->me(); if ($me !== null) { diff --git a/app/Http/Controllers/Web/Auth/LogoutController.php b/app/Http/Controllers/Web/Auth/LogoutController.php index b93c623..daf7bc4 100644 --- a/app/Http/Controllers/Web/Auth/LogoutController.php +++ b/app/Http/Controllers/Web/Auth/LogoutController.php @@ -2,6 +2,7 @@ namespace App\Http\Controllers\Web\Auth; +use App\Features\LoginUser; use App\Http\Controllers\Web\Auth\LogoutParam; use App\Http\Controllers\Web\WebController; use Illuminate\Http\JsonResponse; @@ -10,6 +11,8 @@ use Illuminate\Support\Facades\Auth; class LogoutController extends WebController { + use LoginUser; + public function name(): string { return "ログアウト"; @@ -27,6 +30,9 @@ class LogoutController extends WebController protected function run(Request $request): JsonResponse { Auth::logout(); + + $this->loginUser()->setCurrentContractId(null); + return $this->successResponse(); } } diff --git a/app/Http/Controllers/Web/Auth/Me.php b/app/Http/Controllers/Web/Auth/Me.php index a295050..51e6bb8 100644 --- a/app/Http/Controllers/Web/Auth/Me.php +++ b/app/Http/Controllers/Web/Auth/Me.php @@ -3,7 +3,6 @@ namespace App\Http\Controllers\Web\Auth; use App\Models\User; -use App\Codes\UserRole; use App\Features\LoginUser; use Illuminate\Support\Arr; use Illuminate\Support\Facades\Auth; @@ -30,7 +29,10 @@ trait Me $filteredUser[User::COL_NAME_CONTRACT_ID] = $contract->id; $filteredUser['contract_name'] = $contract->name; $filteredUser['custom'] = $contract->custom(); - }; + } else { + $filteredUser[User::COL_NAME_CONTRACT_ID] = null; + } + return $filteredUser; } return null; diff --git a/app/Http/Controllers/Web/Custom/HelloTechno/ReceiptIssuingOrdersController.php b/app/Http/Controllers/Web/Custom/HelloTechno/ReceiptIssuingOrdersController.php index aa05544..a017a43 100644 --- a/app/Http/Controllers/Web/Custom/HelloTechno/ReceiptIssuingOrdersController.php +++ b/app/Http/Controllers/Web/Custom/HelloTechno/ReceiptIssuingOrdersController.php @@ -3,6 +3,7 @@ namespace App\Http\Controllers\Web\Custom\HelloTechno; use App\Codes\UserRole; +use App\Features\LoginUser; use App\Http\Controllers\Web\IParam; use App\Models\ReceiptIssuingOrder as Order; use App\Repositories\Custom\HelloTechno\ReceiptIssuingOrderRepository; @@ -12,6 +13,9 @@ use Illuminate\Support\Facades\Auth; class ReceiptIssuingOrdersController extends HelloTechnoController { + + use LoginUser; + public function name(): string { return "[HelloTechno専用]領収証発行依頼作成"; @@ -41,7 +45,7 @@ class ReceiptIssuingOrdersController extends HelloTechnoController $condition = [ ...$param->toArray(), - ReceiptIssuingOrderRepository::CONDITION_CONTRACT_ID => Auth::user()->contract_id, + ReceiptIssuingOrderRepository::CONDITION_CONTRACT_ID => $this->loginUser()->getCurrentContractId(), ]; $list = $this->repository->get($condition); diff --git a/app/Http/Controllers/Web/Custom/HelloTechno/UseSummariesController.php b/app/Http/Controllers/Web/Custom/HelloTechno/UseSummariesController.php index cc1f5d6..52ba084 100644 --- a/app/Http/Controllers/Web/Custom/HelloTechno/UseSummariesController.php +++ b/app/Http/Controllers/Web/Custom/HelloTechno/UseSummariesController.php @@ -3,14 +3,17 @@ namespace App\Http\Controllers\Web\Custom\HelloTechno; use App\Codes\UserRole; +use App\Features\LoginUser; use App\Http\Controllers\Web\IParam; use App\Repositories\Custom\HelloTechno\UseSummaryRepository as Repository; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; -use Illuminate\Support\Facades\Auth; class UseSummariesController extends HelloTechnoController { + + use LoginUser; + public function name(): string { return "[HelloTechno専用]利用実績一覧取得"; @@ -40,7 +43,7 @@ class UseSummariesController extends HelloTechnoController $condition = [ ...$param->toArray(), - Repository::CONDITION_CONTRACT_ID => Auth::user()->contract_id, + Repository::CONDITION_CONTRACT_ID => $this->loginUser()->getCurrentContractId(), ]; $list = $this->repository->get($condition); diff --git a/app/Http/Controllers/Web/Custom/HelloTechno/UseSummaryCSVController.php b/app/Http/Controllers/Web/Custom/HelloTechno/UseSummaryCSVController.php index c2a8dd3..9c87d8d 100644 --- a/app/Http/Controllers/Web/Custom/HelloTechno/UseSummaryCSVController.php +++ b/app/Http/Controllers/Web/Custom/HelloTechno/UseSummaryCSVController.php @@ -3,6 +3,7 @@ namespace App\Http\Controllers\Web\Custom\HelloTechno; use App\Codes\UserRole; +use App\Features\LoginUser; use App\Files\CsvFile; use App\Http\Controllers\Web\IParam; use App\Repositories\Custom\HelloTechno\UseSummaryRepository as Repository; @@ -12,6 +13,9 @@ use Symfony\Component\HttpFoundation\BinaryFileResponse; class UseSummaryCSVController extends HelloTechnoController { + + use LoginUser; + public function name(): string { return "[HelloTechno専用]利用実績一覧CSV取得"; @@ -41,7 +45,7 @@ class UseSummaryCSVController extends HelloTechnoController $condition = [ ...$param->toArray(), - Repository::CONDITION_CONTRACT_ID => Auth::user()->contract_id, + Repository::CONDITION_CONTRACT_ID => $this->loginUser()->getCurrentContractId(), Repository::CONDITION_SORT_TARGET => 'customer_code', ]; diff --git a/app/Models/Ex/LoginUser.php b/app/Models/Ex/LoginUser.php index b6808cb..8d373eb 100644 --- a/app/Models/Ex/LoginUser.php +++ b/app/Models/Ex/LoginUser.php @@ -49,7 +49,7 @@ class LoginUser return $contractId === $this->user()->contract_id; } - public function setCurrentContractId(string $contractId) + public function setCurrentContractId(?string $contractId) { $user = $this->user(); if ($user && Auth::user()->role !== UserRole::SUPER_ADMIN) { diff --git a/routes/api.php b/routes/api.php index d587937..6bf14e0 100644 --- a/routes/api.php +++ b/routes/api.php @@ -16,6 +16,7 @@ use App\Util\RouteHelper; RouteHelper::get('/me', App\Http\Controllers\Web\Auth\MeController::class); RouteHelper::post('/login', App\Http\Controllers\Web\Auth\LoginController::class); RouteHelper::get('/logout', App\Http\Controllers\Web\Auth\LogoutController::class); +RouteHelper::post('/change-contract', App\Http\Controllers\Web\Auth\ChangeContractController::class); RouteHelper::get('/app-token-check', App\Http\Controllers\Web\ReceiptIssuingOrder\TokenCheckController::class); RouteHelper::post('/receipt-issuing-order/confirm', App\Http\Controllers\Web\ReceiptIssuingOrder\ConfirmController::class);