Skip to content

Commit 1e57947

Browse files
committed
add password update custom response
1 parent 8e6ac93 commit 1e57947

File tree

4 files changed

+37
-1
lines changed

4 files changed

+37
-1
lines changed
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
<?php
2+
3+
namespace Laravel\Fortify\Contracts;
4+
5+
use Illuminate\Contracts\Support\Responsable;
6+
7+
interface PasswordUpdateResponse extends Responsable
8+
{
9+
//
10+
}

src/FortifyServiceProvider.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
use Laravel\Fortify\Contracts\LogoutResponse as LogoutResponseContract;
1616
use Laravel\Fortify\Contracts\PasswordConfirmedResponse as PasswordConfirmedResponseContract;
1717
use Laravel\Fortify\Contracts\PasswordResetResponse as PasswordResetResponseContract;
18+
use Laravel\Fortify\Contracts\PasswordUpdateResponse as PasswordUpdateResponseContract;
1819
use Laravel\Fortify\Contracts\RegisterResponse as RegisterResponseContract;
1920
use Laravel\Fortify\Contracts\SuccessfulPasswordResetLinkRequestResponse as SuccessfulPasswordResetLinkRequestResponseContract;
2021
use Laravel\Fortify\Contracts\TwoFactorAuthenticationProvider as TwoFactorAuthenticationProviderContract;
@@ -28,6 +29,7 @@
2829
use Laravel\Fortify\Http\Responses\LogoutResponse;
2930
use Laravel\Fortify\Http\Responses\PasswordConfirmedResponse;
3031
use Laravel\Fortify\Http\Responses\PasswordResetResponse;
32+
use Laravel\Fortify\Http\Responses\PasswordUpdateResponse;
3133
use Laravel\Fortify\Http\Responses\RegisterResponse;
3234
use Laravel\Fortify\Http\Responses\SuccessfulPasswordResetLinkRequestResponse;
3335
use Laravel\Fortify\Http\Responses\TwoFactorLoginResponse;
@@ -72,6 +74,7 @@ protected function registerResponseBindings()
7274
$this->app->singleton(LogoutResponseContract::class, LogoutResponse::class);
7375
$this->app->singleton(PasswordConfirmedResponseContract::class, PasswordConfirmedResponse::class);
7476
$this->app->singleton(PasswordResetResponseContract::class, PasswordResetResponse::class);
77+
$this->app->singleton(PasswordUpdateResponseContract::class, PasswordUpdateResponse ::class);
7578
$this->app->singleton(RegisterResponseContract::class, RegisterResponse::class);
7679
$this->app->singleton(SuccessfulPasswordResetLinkRequestResponseContract::class, SuccessfulPasswordResetLinkRequestResponse::class);
7780
}

src/Http/Controllers/PasswordController.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
use Illuminate\Http\JsonResponse;
66
use Illuminate\Http\Request;
77
use Illuminate\Routing\Controller;
8+
use Laravel\Fortify\Contracts\PasswordUpdateResponse;
89
use Laravel\Fortify\Contracts\UpdatesUserPasswords;
910

1011
class PasswordController extends Controller
@@ -21,7 +22,7 @@ public function update(Request $request, UpdatesUserPasswords $updater)
2122
$updater->update($request->user(), $request->all());
2223

2324
return $request->wantsJson()
24-
? new JsonResponse('', 200)
25+
? app(PasswordUpdateResponse::class)
2526
: back()->with('status', 'password-updated');
2627
}
2728
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
<?php
2+
3+
namespace Laravel\Fortify\Http\Responses;
4+
5+
use Illuminate\Http\JsonResponse;
6+
use Laravel\Fortify\Contracts\PasswordUpdateResponse as PasswordUpdateResponseContract;
7+
8+
class PasswordUpdateResponse implements PasswordUpdateResponseContract
9+
{
10+
/**
11+
* Create an HTTP response that represents the object.
12+
*
13+
* @param \Illuminate\Http\Request $request
14+
* @return \Symfony\Component\HttpFoundation\Response
15+
*/
16+
public function toResponse($request)
17+
{
18+
return $request->wantsJson()
19+
? new JsonResponse('', 200)
20+
: redirect()->intended(config('fortify.home'));
21+
}
22+
}

0 commit comments

Comments
 (0)