From b8ef1bd91c2bf3ac54d545b8028eff6c9545ade5 Mon Sep 17 00:00:00 2001
From: Donald <154738239+DonaldFon@users.noreply.github.com>
Date: Wed, 19 Feb 2025 00:53:18 +0800
Subject: [PATCH 1/9] Update web.php
---
routes/web.php | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/routes/web.php b/routes/web.php
index 71d04297..5006f586 100644
--- a/routes/web.php
+++ b/routes/web.php
@@ -20,9 +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
Route::view('/secretpage', 'secretpage')
From fe84d00da83c326b1939c6b3bd645f12dff2aae9 Mon Sep 17 00:00:00 2001
From: Donald <154738239+DonaldFon@users.noreply.github.com>
Date: Wed, 19 Feb 2025 00:55:14 +0800
Subject: [PATCH 2/9] 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 e7240134cce4e12ba42230d8727659dbf4b324c6 Mon Sep 17 00:00:00 2001
From: Donald <154738239+DonaldFon@users.noreply.github.com>
Date: Wed, 19 Feb 2025 00:55:56 +0800
Subject: [PATCH 3/9] 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 6b77ea3cf5a76fc5df9b25c316c3162b37f01b4f Mon Sep 17 00:00:00 2001
From: Donald <154738239+DonaldFon@users.noreply.github.com>
Date: Wed, 19 Feb 2025 01:00:34 +0800
Subject: [PATCH 4/9] Update ProfileController.php
---
app/Http/Controllers/ProfileController.php | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/app/Http/Controllers/ProfileController.php b/app/Http/Controllers/ProfileController.php
index e0093a49..be34d86d 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
{
@@ -16,6 +17,19 @@ 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=$request->user();
+
+
+ if($request->filled('password')){
+ $user->update([
+ 'name'=>$request->name,
+ 'email'=>$request->email,
+ 'password'=>Hash::make($request->password);
+ ]);
+ }else{
+ $user->update($request->safe()->only(['name','email']));
+ }
+
return redirect()->route('profile.show')->with('success', 'Profile updated.');
}
}
From 8d7d1d0932ce30f1076f2cf84578b50a0fedad93 Mon Sep 17 00:00:00 2001
From: Donald <154738239+DonaldFon@users.noreply.github.com>
Date: Wed, 19 Feb 2025 01:01:01 +0800
Subject: [PATCH 5/9] Update ProfileController.php
---
app/Http/Controllers/ProfileController.php | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/app/Http/Controllers/ProfileController.php b/app/Http/Controllers/ProfileController.php
index be34d86d..a2974f45 100644
--- a/app/Http/Controllers/ProfileController.php
+++ b/app/Http/Controllers/ProfileController.php
@@ -24,7 +24,7 @@ public function update(ProfileUpdateRequest $request)
$user->update([
'name'=>$request->name,
'email'=>$request->email,
- 'password'=>Hash::make($request->password);
+ 'password'=>Hash::make($request->password)
]);
}else{
$user->update($request->safe()->only(['name','email']));
From b0368234cecbfb86460b45ef4257923d78688cce Mon Sep 17 00:00:00 2001
From: Donald <154738239+DonaldFon@users.noreply.github.com>
Date: Wed, 19 Feb 2025 01:02:26 +0800
Subject: [PATCH 6/9] 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 5006f586..57723bdc 100644
--- a/routes/web.php
+++ b/routes/web.php
@@ -26,7 +26,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 7115e6005f95e705ee89ceffba6287d809aa63d4 Mon Sep 17 00:00:00 2001
From: Donald <154738239+DonaldFon@users.noreply.github.com>
Date: Wed, 19 Feb 2025 01:02:51 +0800
Subject: [PATCH 7/9] 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 0f45aa4de07c8bdc2997da59b4043c29b4d4618a Mon Sep 17 00:00:00 2001
From: Donald <154738239+DonaldFon@users.noreply.github.com>
Date: Wed, 19 Feb 2025 01:03:53 +0800
Subject: [PATCH 8/9] 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 57723bdc..bbe956e3 100644
--- a/routes/web.php
+++ b/routes/web.php
@@ -31,7 +31,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 503cf4369e2f4e93901d20395d27a0db9ea1bad9 Mon Sep 17 00:00:00 2001
From: Donald <154738239+DonaldFon@users.noreply.github.com>
Date: Wed, 19 Feb 2025 01:05:19 +0800
Subject: [PATCH 9/9] 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([