|
- <?php
-
- namespace App\Http\Controllers\Web\LoginUser;
-
- use App\Codes\UserRole;
- use App\Exceptions\AppCommonException;
- use App\Features\LoginUser;
- use App\Http\Controllers\Web\IParam;
- use App\Http\Controllers\Web\WebController;
- use App\Repositories\LoginUserRepository;
- use Illuminate\Http\JsonResponse;
- use Illuminate\Http\Request;
- use Illuminate\Support\Arr;
-
- class LoginUsersController extends WebController
- {
-
- use LoginUser;
-
- public function name(): string
- {
- return "ログインユーザー一覧取得";
- }
-
- public function description(): string
- {
- return "ログインユーザー一覧を取得する";
- }
-
- public function __construct(
- protected LoginUsersParam $param,
- private LoginUserRepository $repository
- ) {
- parent::__construct();
- $this->roleAllow(UserRole::NORMAL_ADMIN);
- }
-
- protected function getParam(): IParam
- {
- return $this->param;
- }
-
- protected function run(Request $request): JsonResponse
- {
- $param = $this->param;
-
- $role = $this->loginUser()->user()->role;
-
- $currentContractId = $this->loginUser()->getCurrentContractId();
- if (!$currentContractId && $role !== UserRole::SUPER_ADMIN) {
- throw new AppCommonException("認証不正");
- }
-
- $condition = [
- ...$param->toArray(),
- LoginUserRepository::CONDITION_CONTRACT_ID => $currentContractId,
- ];
-
- if ($role === UserRole::NORMAL_ADMIN) {
- Arr::add($condition, LoginUserRepository::CONDITION_ID, $this->loginUser()->user()->id);
- }
-
- $list = $this->repository->get($condition);
-
-
- return $this->successResponse([
- 'records' => $list
- ]);
- }
- }
|