Skip to content

Commit b567295

Browse files
committed
Added Breeze Vue starter kit
1 parent 0021649 commit b567295

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

50 files changed

+1835
-7787
lines changed
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
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 App\Providers\RouteServiceProvider;
8+
use Illuminate\Http\Request;
9+
use Illuminate\Support\Facades\Auth;
10+
use Illuminate\Support\Facades\Route;
11+
use Inertia\Inertia;
12+
13+
class AuthenticatedSessionController extends Controller
14+
{
15+
/**
16+
* Display the login view.
17+
*
18+
* @return \Inertia\Response
19+
*/
20+
public function create()
21+
{
22+
return Inertia::render('Auth/Login', [
23+
'canResetPassword' => Route::has('password.request'),
24+
'status' => session('status'),
25+
]);
26+
}
27+
28+
/**
29+
* Handle an incoming authentication request.
30+
*
31+
* @param \App\Http\Requests\Auth\LoginRequest $request
32+
* @return \Illuminate\Http\RedirectResponse
33+
*/
34+
public function store(LoginRequest $request)
35+
{
36+
$request->authenticate();
37+
38+
$request->session()->regenerate();
39+
40+
return redirect()->intended(RouteServiceProvider::HOME);
41+
}
42+
43+
/**
44+
* Destroy an authenticated session.
45+
*
46+
* @param \Illuminate\Http\Request $request
47+
* @return \Illuminate\Http\RedirectResponse
48+
*/
49+
public function destroy(Request $request)
50+
{
51+
Auth::guard('web')->logout();
52+
53+
$request->session()->invalidate();
54+
55+
$request->session()->regenerateToken();
56+
57+
return redirect('/');
58+
}
59+
}
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
<?php
2+
3+
namespace App\Http\Controllers\Auth;
4+
5+
use App\Http\Controllers\Controller;
6+
use App\Providers\RouteServiceProvider;
7+
use Illuminate\Http\Request;
8+
use Illuminate\Support\Facades\Auth;
9+
use Illuminate\Validation\ValidationException;
10+
use Inertia\Inertia;
11+
12+
class ConfirmablePasswordController extends Controller
13+
{
14+
/**
15+
* Show the confirm password view.
16+
*
17+
* @return \Inertia\Response
18+
*/
19+
public function show()
20+
{
21+
return Inertia::render('Auth/ConfirmPassword');
22+
}
23+
24+
/**
25+
* Confirm the user's password.
26+
*
27+
* @param \Illuminate\Http\Request $request
28+
* @return mixed
29+
*/
30+
public function store(Request $request)
31+
{
32+
if (! Auth::guard('web')->validate([
33+
'email' => $request->user()->email,
34+
'password' => $request->password,
35+
])) {
36+
throw ValidationException::withMessages([
37+
'password' => __('auth.password'),
38+
]);
39+
}
40+
41+
$request->session()->put('auth.password_confirmed_at', time());
42+
43+
return redirect()->intended(RouteServiceProvider::HOME);
44+
}
45+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
<?php
2+
3+
namespace App\Http\Controllers\Auth;
4+
5+
use App\Http\Controllers\Controller;
6+
use App\Providers\RouteServiceProvider;
7+
use Illuminate\Http\Request;
8+
9+
class EmailVerificationNotificationController extends Controller
10+
{
11+
/**
12+
* Send a new email verification notification.
13+
*
14+
* @param \Illuminate\Http\Request $request
15+
* @return \Illuminate\Http\RedirectResponse
16+
*/
17+
public function store(Request $request)
18+
{
19+
if ($request->user()->hasVerifiedEmail()) {
20+
return redirect()->intended(RouteServiceProvider::HOME);
21+
}
22+
23+
$request->user()->sendEmailVerificationNotification();
24+
25+
return back()->with('status', 'verification-link-sent');
26+
}
27+
}
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 App\Providers\RouteServiceProvider;
7+
use Illuminate\Http\Request;
8+
use Inertia\Inertia;
9+
10+
class EmailVerificationPromptController extends Controller
11+
{
12+
/**
13+
* Display the email verification prompt.
14+
*
15+
* @param \Illuminate\Http\Request $request
16+
* @return mixed
17+
*/
18+
public function __invoke(Request $request)
19+
{
20+
return $request->user()->hasVerifiedEmail()
21+
? redirect()->intended(RouteServiceProvider::HOME)
22+
: Inertia::render('Auth/VerifyEmail', ['status' => session('status')]);
23+
}
24+
}
Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
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\Request;
8+
use Illuminate\Support\Facades\Hash;
9+
use Illuminate\Support\Facades\Password;
10+
use Illuminate\Support\Str;
11+
use Illuminate\Validation\Rules;
12+
use Illuminate\Validation\ValidationException;
13+
use Inertia\Inertia;
14+
15+
class NewPasswordController extends Controller
16+
{
17+
/**
18+
* Display the password reset view.
19+
*
20+
* @param \Illuminate\Http\Request $request
21+
* @return \Inertia\Response
22+
*/
23+
public function create(Request $request)
24+
{
25+
return Inertia::render('Auth/ResetPassword', [
26+
'email' => $request->email,
27+
'token' => $request->route('token'),
28+
]);
29+
}
30+
31+
/**
32+
* Handle an incoming new password request.
33+
*
34+
* @param \Illuminate\Http\Request $request
35+
* @return \Illuminate\Http\RedirectResponse
36+
*
37+
* @throws \Illuminate\Validation\ValidationException
38+
*/
39+
public function store(Request $request)
40+
{
41+
$request->validate([
42+
'token' => 'required',
43+
'email' => 'required|email',
44+
'password' => ['required', 'confirmed', Rules\Password::defaults()],
45+
]);
46+
47+
// Here we will attempt to reset the user's password. If it is successful we
48+
// will update the password on an actual user model and persist it to the
49+
// database. Otherwise we will parse the error and return the response.
50+
$status = Password::reset(
51+
$request->only('email', 'password', 'password_confirmation', 'token'),
52+
function ($user) use ($request) {
53+
$user->forceFill([
54+
'password' => Hash::make($request->password),
55+
'remember_token' => Str::random(60),
56+
])->save();
57+
58+
event(new PasswordReset($user));
59+
}
60+
);
61+
62+
// If the password was successfully reset, we will redirect the user back to
63+
// the application's home authenticated view. If there is an error we can
64+
// redirect them back to where they came from with their error message.
65+
if ($status == Password::PASSWORD_RESET) {
66+
return redirect()->route('login')->with('status', __($status));
67+
}
68+
69+
throw ValidationException::withMessages([
70+
'email' => [trans($status)],
71+
]);
72+
}
73+
}
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
<?php
2+
3+
namespace App\Http\Controllers\Auth;
4+
5+
use App\Http\Controllers\Controller;
6+
use Illuminate\Http\Request;
7+
use Illuminate\Support\Facades\Password;
8+
use Illuminate\Validation\ValidationException;
9+
use Inertia\Inertia;
10+
11+
class PasswordResetLinkController extends Controller
12+
{
13+
/**
14+
* Display the password reset link request view.
15+
*
16+
* @return \Inertia\Response
17+
*/
18+
public function create()
19+
{
20+
return Inertia::render('Auth/ForgotPassword', [
21+
'status' => session('status'),
22+
]);
23+
}
24+
25+
/**
26+
* Handle an incoming password reset link request.
27+
*
28+
* @param \Illuminate\Http\Request $request
29+
* @return \Illuminate\Http\RedirectResponse
30+
*
31+
* @throws \Illuminate\Validation\ValidationException
32+
*/
33+
public function store(Request $request)
34+
{
35+
$request->validate([
36+
'email' => 'required|email',
37+
]);
38+
39+
// We will send the password reset link to this user. Once we have attempted
40+
// to send the link, we will examine the response then see the message we
41+
// need to show to the user. Finally, we'll send out a proper response.
42+
$status = Password::sendResetLink(
43+
$request->only('email')
44+
);
45+
46+
if ($status == Password::RESET_LINK_SENT) {
47+
return back()->with('status', __($status));
48+
}
49+
50+
throw ValidationException::withMessages([
51+
'email' => [trans($status)],
52+
]);
53+
}
54+
}
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
<?php
2+
3+
namespace App\Http\Controllers\Auth;
4+
5+
use App\Http\Controllers\Controller;
6+
use App\Models\User;
7+
use App\Providers\RouteServiceProvider;
8+
use Illuminate\Auth\Events\Registered;
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+
15+
class RegisteredUserController extends Controller
16+
{
17+
/**
18+
* Display the registration view.
19+
*
20+
* @return \Inertia\Response
21+
*/
22+
public function create()
23+
{
24+
return Inertia::render('Auth/Register');
25+
}
26+
27+
/**
28+
* Handle an incoming registration request.
29+
*
30+
* @param \Illuminate\Http\Request $request
31+
* @return \Illuminate\Http\RedirectResponse
32+
*
33+
* @throws \Illuminate\Validation\ValidationException
34+
*/
35+
public function store(Request $request)
36+
{
37+
$request->validate([
38+
'name' => 'required|string|max:255',
39+
'email' => 'required|string|email|max:255|unique:users',
40+
'password' => ['required', 'confirmed', Rules\Password::defaults()],
41+
]);
42+
43+
$user = User::create([
44+
'name' => $request->name,
45+
'email' => $request->email,
46+
'password' => Hash::make($request->password),
47+
]);
48+
49+
event(new Registered($user));
50+
51+
Auth::login($user);
52+
53+
return redirect(RouteServiceProvider::HOME);
54+
}
55+
}
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 App\Providers\RouteServiceProvider;
7+
use Illuminate\Auth\Events\Verified;
8+
use Illuminate\Foundation\Auth\EmailVerificationRequest;
9+
10+
class VerifyEmailController extends Controller
11+
{
12+
/**
13+
* Mark the authenticated user's email address as verified.
14+
*
15+
* @param \Illuminate\Foundation\Auth\EmailVerificationRequest $request
16+
* @return \Illuminate\Http\RedirectResponse
17+
*/
18+
public function __invoke(EmailVerificationRequest $request)
19+
{
20+
if ($request->user()->hasVerifiedEmail()) {
21+
return redirect()->intended(RouteServiceProvider::HOME.'?verified=1');
22+
}
23+
24+
if ($request->user()->markEmailAsVerified()) {
25+
event(new Verified($request->user()));
26+
}
27+
28+
return redirect()->intended(RouteServiceProvider::HOME.'?verified=1');
29+
}
30+
}

app/Http/Kernel.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ class Kernel extends HttpKernel
3636
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
3737
\App\Http\Middleware\VerifyCsrfToken::class,
3838
\Illuminate\Routing\Middleware\SubstituteBindings::class,
39+
\App\Http\Middleware\HandleInertiaRequests::class,
3940
],
4041

4142
'api' => [

0 commit comments

Comments
 (0)