From 66cf9abe0a088c869c5822717adee9ceb846a945 Mon Sep 17 00:00:00 2001 From: Donald <154738239+DonaldFon@users.noreply.github.com> Date: Fri, 27 Jun 2025 12:12:41 +0800 Subject: [PATCH 1/8] Update web.php --- routes/web.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/routes/web.php b/routes/web.php index 71d04297..a61ae44b 100644 --- a/routes/web.php +++ b/routes/web.php @@ -20,8 +20,10 @@ Route::get('users', [\App\Http\Controllers\UserController::class, 'index'])->name('users.index'); // Task: profile functionality should be available only for logged-in users +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 From 701384ce3a357e86bbf0cd1f00c214257c787231 Mon Sep 17 00:00:00 2001 From: Donald <154738239+DonaldFon@users.noreply.github.com> Date: Fri, 27 Jun 2025 12:13:34 +0800 Subject: [PATCH 2/8] Update navigation.blade.php --- resources/views/layouts/navigation.blade.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/resources/views/layouts/navigation.blade.php b/resources/views/layouts/navigation.blade.php index 785936e7..541e0994 100644 --- a/resources/views/layouts/navigation.blade.php +++ b/resources/views/layouts/navigation.blade.php @@ -15,10 +15,12 @@ {{ __('Users') }} + @auth {{-- Task: this "Profile" link should be visible only to logged-in users --}} {{ __('Profile') }} + @endauth From f61d2fd34a42f516112fc2817bbad7cc2c30ffb9 Mon Sep 17 00:00:00 2001 From: Donald <154738239+DonaldFon@users.noreply.github.com> Date: Fri, 27 Jun 2025 12:15:55 +0800 Subject: [PATCH 3/8] Update profile.blade.php --- resources/views/auth/profile.blade.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/views/auth/profile.blade.php b/resources/views/auth/profile.blade.php index 70e8a8e1..27ab8a1b 100644 --- a/resources/views/auth/profile.blade.php +++ b/resources/views/auth/profile.blade.php @@ -29,7 +29,7 @@ class="block mt-1 w-full" type="text" name="name" - value="???" + value="{{auth()->user()->name}}" required /> @@ -40,7 +40,7 @@ class="block mt-1 w-full" class="block mt-1 w-full" type="email" name="email" - value="???" + value="{{auth()->user()->email}}" required /> From 16fa5ec7c15dd4e45a13938296e1ecb548d94a80 Mon Sep 17 00:00:00 2001 From: Donald <154738239+DonaldFon@users.noreply.github.com> Date: Fri, 27 Jun 2025 12:18:24 +0800 Subject: [PATCH 4/8] Update ProfileController.php --- app/Http/Controllers/ProfileController.php | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/app/Http/Controllers/ProfileController.php b/app/Http/Controllers/ProfileController.php index e0093a49..137345a9 100644 --- a/app/Http/Controllers/ProfileController.php +++ b/app/Http/Controllers/ProfileController.php @@ -3,6 +3,7 @@ namespace App\Http\Controllers; use App\Http\Requests\ProfileUpdateRequest; +use Illuminate\Support\Facades\Hash; class ProfileController extends Controller { @@ -15,6 +16,14 @@ 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(); + $user->update($request->safe()->only(['name','email'])); + + if($request->filled('password')){ + $user->update([ + 'password'=>Hash::make($request->password) + ]); + } return redirect()->route('profile.show')->with('success', 'Profile updated.'); } From 4565ad21ebf2685fb28e9fff570d573b86586a8a Mon Sep 17 00:00:00 2001 From: Donald <154738239+DonaldFon@users.noreply.github.com> Date: Fri, 27 Jun 2025 12:20:29 +0800 Subject: [PATCH 5/8] Update web.php --- routes/web.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/routes/web.php b/routes/web.php index a61ae44b..7901877e 100644 --- a/routes/web.php +++ b/routes/web.php @@ -27,7 +27,7 @@ // 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') +Route::view('/secretpage', 'secretpage')->middleware(['auth','verified']) ->name('secretpage'); // Task: this "/verysecretpage" URL should ask user for verifying their password once again From 5d8b9353fa940e48ab6b7b05f987f586d7fb4abe Mon Sep 17 00:00:00 2001 From: Donald <154738239+DonaldFon@users.noreply.github.com> Date: Fri, 27 Jun 2025 12:21:00 +0800 Subject: [PATCH 6/8] Update User.php --- app/Models/User.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Models/User.php b/app/Models/User.php index e23e0905..12a2354b 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -8,7 +8,7 @@ use Illuminate\Notifications\Notifiable; use Laravel\Sanctum\HasApiTokens; -class User extends Authenticatable +class User extends Authenticatable implements MustVerifyEmail { use HasApiTokens, HasFactory, Notifiable; From cb985863ff27c0fad734ced7648ea1b164b30f70 Mon Sep 17 00:00:00 2001 From: Donald <154738239+DonaldFon@users.noreply.github.com> Date: Fri, 27 Jun 2025 12:22:49 +0800 Subject: [PATCH 7/8] Update web.php --- routes/web.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/routes/web.php b/routes/web.php index 7901877e..d89d89f7 100644 --- a/routes/web.php +++ b/routes/web.php @@ -32,7 +32,7 @@ // Task: this "/verysecretpage" URL should ask user for verifying their password once again // You need to add some middleware here -Route::view('/verysecretpage', 'verysecretpage') +Route::view('/verysecretpage', 'verysecretpage')->middleware('password.confirm') ->name('verysecretpage'); require __DIR__.'/auth.php'; From 9a4109a256d18f1e400d8b19d6889a2327754179 Mon Sep 17 00:00:00 2001 From: Donald <154738239+DonaldFon@users.noreply.github.com> Date: Fri, 27 Jun 2025 12:25:13 +0800 Subject: [PATCH 8/8] Update RegisteredUserController.php --- app/Http/Controllers/Auth/RegisteredUserController.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Http/Controllers/Auth/RegisteredUserController.php b/app/Http/Controllers/Auth/RegisteredUserController.php index d8d29eb5..208d9a24 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::min(8)->letters()], ]); $user = User::create([