diff --git a/app/Http/Controllers/Auth/RegisteredUserController.php b/app/Http/Controllers/Auth/RegisteredUserController.php index d8d29eb5..64a2b2a6 100644 --- a/app/Http/Controllers/Auth/RegisteredUserController.php +++ b/app/Http/Controllers/Auth/RegisteredUserController.php @@ -37,7 +37,7 @@ public function store(Request $request) $request->validate([ 'name' => ['required', 'string', 'max:255'], 'email' => ['required', 'string', 'email', 'max:255', 'unique:users'], - 'password' => ['required', 'confirmed', Rules\Password::defaults()], + 'password' => ['required', 'confirmed', Rules\Password::defaults()->letters()], ]); $user = User::create([ diff --git a/app/Http/Controllers/ProfileController.php b/app/Http/Controllers/ProfileController.php index e0093a49..8ffc29ff 100644 --- a/app/Http/Controllers/ProfileController.php +++ b/app/Http/Controllers/ProfileController.php @@ -2,6 +2,7 @@ namespace App\Http\Controllers; +use App\Models\User; use App\Http\Requests\ProfileUpdateRequest; class ProfileController extends Controller @@ -15,6 +16,13 @@ public function update(ProfileUpdateRequest $request) { // Task: fill in the code here to update name and email // Also, update the password if it is set + $user = auth()->user(); + if ($request->has('password')) { + $user->password = \bcrypt($request->password); + } + $user->name = $request->name; + $user->email = $request->email; + $user->save(); return redirect()->route('profile.show')->with('success', 'Profile updated.'); } diff --git a/app/Http/Middleware/VerifyEmail.php b/app/Http/Middleware/VerifyEmail.php new file mode 100644 index 00000000..a3080fed --- /dev/null +++ b/app/Http/Middleware/VerifyEmail.php @@ -0,0 +1,21 @@ +
- + @@ -22,44 +22,30 @@ Task: replace ??? for name/email with logged in user's name/email

- + - {{-- Task: replace ??? for name/email with logged in user's name/email --}} - +
- + - +
- + - +
- + - +
diff --git a/resources/views/layouts/navigation.blade.php b/resources/views/layouts/navigation.blade.php index 785936e7..d9a0be1b 100644 --- a/resources/views/layouts/navigation.blade.php +++ b/resources/views/layouts/navigation.blade.php @@ -6,7 +6,7 @@
- +
@@ -15,10 +15,11 @@ {{ __('Users') }} - {{-- Task: this "Profile" link should be visible only to logged-in users --}} + @auth {{ __('Profile') }} + @endauth @@ -33,10 +34,10 @@ class="flex items-center text-sm font-medium text-gray-500 transition duration-1
+ viewBox="0 0 20 20"> + d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z" + clip-rule="evenodd" />
@@ -55,24 +56,25 @@ class="flex items-center text-sm font-medium text-gray-500 transition duration-1 @else - Log in + Log in - @if (Route::has('register')) - Register - @endif + @if (Route::has('register')) + Register + @endif @endauth
@@ -83,7 +85,7 @@ class="inline-flex justify-center items-center p-2 text-gray-400 rounded-md tran diff --git a/routes/web.php b/routes/web.php index 71d04297..8d868338 100644 --- a/routes/web.php +++ b/routes/web.php @@ -20,17 +20,19 @@ Route::get('users', [\App\Http\Controllers\UserController::class, 'index'])->name('users.index'); // Task: profile functionality should be available only for logged-in users -Route::get('profile', [\App\Http\Controllers\ProfileController::class, 'show'])->name('profile.show'); -Route::put('profile', [\App\Http\Controllers\ProfileController::class, 'update'])->name('profile.update'); +Route::middleware(["auth"])->group(function () { + Route::get('profile', [\App\Http\Controllers\ProfileController::class, 'show'])->name('profile.show'); + Route::put('profile', [\App\Http\Controllers\ProfileController::class, 'update'])->name('profile.update'); +}); // Task: this "/secretpage" URL should be visible only for those who VERIFIED their email // Add some middleware here, and change some code in app/Models/User.php to enable this Route::view('/secretpage', 'secretpage') - ->name('secretpage'); + ->name('secretpage')->middleware(["auth", "verified"]); // Task: this "/verysecretpage" URL should ask user for verifying their password once again // You need to add some middleware here Route::view('/verysecretpage', 'verysecretpage') - ->name('verysecretpage'); + ->name('verysecretpage')->middleware("password.confirm"); -require __DIR__.'/auth.php'; +require __DIR__ . '/auth.php';