Skip to content

Commit 79ed6d3

Browse files
reupload
1 parent 44ec4ed commit 79ed6d3

154 files changed

Lines changed: 25100 additions & 0 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
<?php
2+
3+
namespace App\Http\Controllers\Auth;
4+
5+
use App\Http\Controllers\Controller;
6+
use App\Http\Requests\Auth\LoginRequest;
7+
use Illuminate\Http\RedirectResponse;
8+
use Illuminate\Http\Request;
9+
use Illuminate\Support\Facades\Auth;
10+
use Illuminate\Support\Facades\Route;
11+
use Inertia\Inertia;
12+
use Inertia\Response;
13+
14+
class AuthenticatedSessionController extends Controller
15+
{
16+
/**
17+
* Show the login page.
18+
*/
19+
public function create(Request $request): Response
20+
{
21+
return Inertia::render('auth/login', [
22+
'canResetPassword' => Route::has('password.request'),
23+
'status' => $request->session()->get('status'),
24+
]);
25+
}
26+
27+
/**
28+
* Handle an incoming authentication request.
29+
*/
30+
public function store(LoginRequest $request): RedirectResponse
31+
{
32+
$request->authenticate();
33+
34+
$request->session()->regenerate();
35+
36+
return redirect()->intended(route('dashboard', absolute: false));
37+
}
38+
39+
/**
40+
* Destroy an authenticated session.
41+
*/
42+
public function destroy(Request $request): RedirectResponse
43+
{
44+
Auth::guard('web')->logout();
45+
46+
$request->session()->invalidate();
47+
$request->session()->regenerateToken();
48+
49+
return redirect('/');
50+
}
51+
}
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
<?php
2+
3+
namespace App\Http\Controllers\Auth;
4+
5+
use App\Http\Controllers\Controller;
6+
use Illuminate\Http\RedirectResponse;
7+
use Illuminate\Http\Request;
8+
use Illuminate\Support\Facades\Auth;
9+
use Illuminate\Validation\ValidationException;
10+
use Inertia\Inertia;
11+
use Inertia\Response;
12+
13+
class ConfirmablePasswordController extends Controller
14+
{
15+
/**
16+
* Show the confirm password page.
17+
*/
18+
public function show(): Response
19+
{
20+
return Inertia::render('auth/confirm-password');
21+
}
22+
23+
/**
24+
* Confirm the user's password.
25+
*/
26+
public function store(Request $request): RedirectResponse
27+
{
28+
if (! Auth::guard('web')->validate([
29+
'email' => $request->user()->email,
30+
'password' => $request->password,
31+
])) {
32+
throw ValidationException::withMessages([
33+
'password' => __('auth.password'),
34+
]);
35+
}
36+
37+
$request->session()->put('auth.password_confirmed_at', time());
38+
39+
return redirect()->intended(route('dashboard', absolute: false));
40+
}
41+
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
<?php
2+
3+
namespace App\Http\Controllers\Auth;
4+
5+
use App\Http\Controllers\Controller;
6+
use Illuminate\Http\RedirectResponse;
7+
use Illuminate\Http\Request;
8+
9+
class EmailVerificationNotificationController extends Controller
10+
{
11+
/**
12+
* Send a new email verification notification.
13+
*/
14+
public function store(Request $request): RedirectResponse
15+
{
16+
if ($request->user()->hasVerifiedEmail()) {
17+
return redirect()->intended(route('dashboard', absolute: false));
18+
}
19+
20+
$request->user()->sendEmailVerificationNotification();
21+
22+
return back()->with('status', 'verification-link-sent');
23+
}
24+
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
<?php
2+
3+
namespace App\Http\Controllers\Auth;
4+
5+
use App\Http\Controllers\Controller;
6+
use Illuminate\Http\RedirectResponse;
7+
use Illuminate\Http\Request;
8+
use Inertia\Inertia;
9+
use Inertia\Response;
10+
11+
class EmailVerificationPromptController extends Controller
12+
{
13+
/**
14+
* Show the email verification prompt page.
15+
*/
16+
public function __invoke(Request $request): Response|RedirectResponse
17+
{
18+
return $request->user()->hasVerifiedEmail()
19+
? redirect()->intended(route('dashboard', absolute: false))
20+
: Inertia::render('auth/verify-email', ['status' => $request->session()->get('status')]);
21+
}
22+
}
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
<?php
2+
3+
namespace App\Http\Controllers\Auth;
4+
5+
use App\Http\Controllers\Controller;
6+
use Illuminate\Auth\Events\PasswordReset;
7+
use Illuminate\Http\RedirectResponse;
8+
use Illuminate\Http\Request;
9+
use Illuminate\Support\Facades\Hash;
10+
use Illuminate\Support\Facades\Password;
11+
use Illuminate\Support\Str;
12+
use Illuminate\Validation\Rules;
13+
use Illuminate\Validation\ValidationException;
14+
use Inertia\Inertia;
15+
use Inertia\Response;
16+
17+
class NewPasswordController extends Controller
18+
{
19+
/**
20+
* Show the password reset page.
21+
*/
22+
public function create(Request $request): Response
23+
{
24+
return Inertia::render('auth/reset-password', [
25+
'email' => $request->email,
26+
'token' => $request->route('token'),
27+
]);
28+
}
29+
30+
/**
31+
* Handle an incoming new password request.
32+
*
33+
* @throws \Illuminate\Validation\ValidationException
34+
*/
35+
public function store(Request $request): RedirectResponse
36+
{
37+
$request->validate([
38+
'token' => 'required',
39+
'email' => 'required|email',
40+
'password' => ['required', 'confirmed', Rules\Password::defaults()],
41+
]);
42+
43+
// Here we will attempt to reset the user's password. If it is successful we
44+
// will update the password on an actual user model and persist it to the
45+
// database. Otherwise we will parse the error and return the response.
46+
$status = Password::reset(
47+
$request->only('email', 'password', 'password_confirmation', 'token'),
48+
function ($user) use ($request) {
49+
$user->forceFill([
50+
'password' => Hash::make($request->password),
51+
'remember_token' => Str::random(60),
52+
])->save();
53+
54+
event(new PasswordReset($user));
55+
}
56+
);
57+
58+
// If the password was successfully reset, we will redirect the user back to
59+
// the application's home authenticated view. If there is an error we can
60+
// redirect them back to where they came from with their error message.
61+
if ($status == Password::PasswordReset) {
62+
return to_route('login')->with('status', __($status));
63+
}
64+
65+
throw ValidationException::withMessages([
66+
'email' => [__($status)],
67+
]);
68+
}
69+
}
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
<?php
2+
3+
namespace App\Http\Controllers\Auth;
4+
5+
use App\Http\Controllers\Controller;
6+
use Illuminate\Http\RedirectResponse;
7+
use Illuminate\Http\Request;
8+
use Illuminate\Support\Facades\Password;
9+
use Inertia\Inertia;
10+
use Inertia\Response;
11+
12+
class PasswordResetLinkController extends Controller
13+
{
14+
/**
15+
* Show the password reset link request page.
16+
*/
17+
public function create(Request $request): Response
18+
{
19+
return Inertia::render('auth/forgot-password', [
20+
'status' => $request->session()->get('status'),
21+
]);
22+
}
23+
24+
/**
25+
* Handle an incoming password reset link request.
26+
*
27+
* @throws \Illuminate\Validation\ValidationException
28+
*/
29+
public function store(Request $request): RedirectResponse
30+
{
31+
$request->validate([
32+
'email' => 'required|email',
33+
]);
34+
35+
Password::sendResetLink(
36+
$request->only('email')
37+
);
38+
39+
return back()->with('status', __('A reset link will be sent if the account exists.'));
40+
}
41+
}
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
<?php
2+
3+
namespace App\Http\Controllers\Auth;
4+
5+
use App\Http\Controllers\Controller;
6+
use App\Models\User;
7+
use Illuminate\Auth\Events\Registered;
8+
use Illuminate\Http\RedirectResponse;
9+
use Illuminate\Http\Request;
10+
use Illuminate\Support\Facades\Auth;
11+
use Illuminate\Support\Facades\Hash;
12+
use Illuminate\Validation\Rules;
13+
use Inertia\Inertia;
14+
use Inertia\Response;
15+
16+
class RegisteredUserController extends Controller
17+
{
18+
/**
19+
* Show the registration page.
20+
*/
21+
public function create(): Response
22+
{
23+
return Inertia::render('auth/register');
24+
}
25+
26+
/**
27+
* Handle an incoming registration request.
28+
*
29+
* @throws \Illuminate\Validation\ValidationException
30+
*/
31+
public function store(Request $request): RedirectResponse
32+
{
33+
$request->validate([
34+
'name' => 'required|string|max:255',
35+
'email' => 'required|string|lowercase|email|max:255|unique:'.User::class,
36+
'password' => ['required', 'confirmed', Rules\Password::defaults()],
37+
]);
38+
39+
$user = User::create([
40+
'name' => $request->name,
41+
'email' => $request->email,
42+
'password' => Hash::make($request->password),
43+
]);
44+
45+
event(new Registered($user));
46+
47+
Auth::login($user);
48+
49+
return to_route('dashboard');
50+
}
51+
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
<?php
2+
3+
namespace App\Http\Controllers\Auth;
4+
5+
use App\Http\Controllers\Controller;
6+
use Illuminate\Auth\Events\Verified;
7+
use Illuminate\Foundation\Auth\EmailVerificationRequest;
8+
use Illuminate\Http\RedirectResponse;
9+
10+
class VerifyEmailController extends Controller
11+
{
12+
/**
13+
* Mark the authenticated user's email address as verified.
14+
*/
15+
public function __invoke(EmailVerificationRequest $request): RedirectResponse
16+
{
17+
if ($request->user()->hasVerifiedEmail()) {
18+
return redirect()->intended(route('dashboard', absolute: false).'?verified=1');
19+
}
20+
21+
if ($request->user()->markEmailAsVerified()) {
22+
/** @var \Illuminate\Contracts\Auth\MustVerifyEmail $user */
23+
$user = $request->user();
24+
25+
event(new Verified($user));
26+
}
27+
28+
return redirect()->intended(route('dashboard', absolute: false).'?verified=1');
29+
}
30+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<?php
2+
3+
namespace App\Http\Controllers;
4+
5+
abstract class Controller
6+
{
7+
//
8+
}
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
<?php
2+
3+
namespace App\Http\Controllers\Settings;
4+
5+
use App\Http\Controllers\Controller;
6+
use Illuminate\Contracts\Auth\MustVerifyEmail;
7+
use Illuminate\Http\RedirectResponse;
8+
use Illuminate\Http\Request;
9+
use Illuminate\Support\Facades\Hash;
10+
use Illuminate\Validation\Rules\Password;
11+
use Inertia\Inertia;
12+
use Inertia\Response;
13+
14+
class PasswordController extends Controller
15+
{
16+
/**
17+
* Show the user's password settings page.
18+
*/
19+
public function edit(Request $request): Response
20+
{
21+
return Inertia::render('settings/password', [
22+
'mustVerifyEmail' => $request->user() instanceof MustVerifyEmail,
23+
'status' => $request->session()->get('status'),
24+
]);
25+
}
26+
27+
/**
28+
* Update the user's password.
29+
*/
30+
public function update(Request $request): RedirectResponse
31+
{
32+
$validated = $request->validate([
33+
'current_password' => ['required', 'current_password'],
34+
'password' => ['required', Password::defaults(), 'confirmed'],
35+
]);
36+
37+
$request->user()->update([
38+
'password' => Hash::make($validated['password']),
39+
]);
40+
41+
return back();
42+
}
43+
}

0 commit comments

Comments
 (0)