You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

45 lines
1.0KB

  1. <?php
  2. namespace App\Http\Controllers\Web\Auth;
  3. use App\Http\Controllers\Web\WebController;
  4. use App\Logic\PasswordSettingManager;
  5. use Illuminate\Http\JsonResponse;
  6. use Illuminate\Http\Request;
  7. class PasswordSettingVerifyController extends WebController
  8. {
  9. public function name(): string
  10. {
  11. return "パスワード設定認証";
  12. }
  13. public function description(): string
  14. {
  15. return "パスワード設定手続きを認証する";
  16. }
  17. public function __construct(protected PasswordSettingVerifyParam $param, private PasswordSettingManager $manager)
  18. {
  19. parent::__construct();
  20. }
  21. protected function run(Request $request): JsonResponse
  22. {
  23. $param = $this->param;
  24. $users = $this->manager->verify($param->token);
  25. if ($users === null) {
  26. return $this->failedResponse();
  27. }
  28. foreach ($users as $user) {
  29. $user->password = $param->password;
  30. $user->save();
  31. }
  32. return $this->successResponse();
  33. }
  34. }