From 76e8d343b0b2593b366682707c4ae661e687bb87 Mon Sep 17 00:00:00 2001 From: klaudia tamburi Date: Mon, 5 May 2025 14:57:49 +0200 Subject: [PATCH 1/5] tasks check --- app/Http/Controllers/Auth/RegisteredUserController.php | 2 +- app/Http/Controllers/ProfileController.php | 9 +++++++++ app/Models/User.php | 2 +- resources/views/auth/profile.blade.php | 4 ++-- resources/views/layouts/navigation.blade.php | 2 ++ routes/web.php | 8 ++++---- 6 files changed, 19 insertions(+), 8 deletions(-) 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..5c3a7ce9 100644 --- a/app/Http/Controllers/ProfileController.php +++ b/app/Http/Controllers/ProfileController.php @@ -15,7 +15,16 @@ 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->name = $request->name; + $user->email = $request->email; + if ($request->filled('password')) { + $user->password = Hash::make($request->password); + } + + $user->save(); + return redirect()->route('profile.show')->with('success', 'Profile updated.'); } } 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; diff --git a/resources/views/auth/profile.blade.php b/resources/views/auth/profile.blade.php index 70e8a8e1..bd6e8a17 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="old('name', $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="old('email', $user->email)" required /> 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 diff --git a/routes/web.php b/routes/web.php index 71d04297..4e2971a6 100644 --- a/routes/web.php +++ b/routes/web.php @@ -20,17 +20,17 @@ 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::get('profile', [\App\Http\Controllers\ProfileController::class, 'show'])->name('profile.show')->middleware('auth'); +Route::put('profile', [\App\Http\Controllers\ProfileController::class, 'update'])->name('profile.update')->middleware('auth'); // 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'; From 405d995d9f54f8e504eb65a1f6bb010eb2a4faa0 Mon Sep 17 00:00:00 2001 From: klaudia tamburi Date: Mon, 5 May 2025 15:01:51 +0200 Subject: [PATCH 2/5] added import --- app/Http/Controllers/ProfileController.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/Http/Controllers/ProfileController.php b/app/Http/Controllers/ProfileController.php index 5c3a7ce9..c99e2f5b 100644 --- a/app/Http/Controllers/ProfileController.php +++ b/app/Http/Controllers/ProfileController.php @@ -1,7 +1,7 @@ save(); - + return redirect()->route('profile.show')->with('success', 'Profile updated.'); } } From 24f5fc187ad3b888a42600a3c89efc0e4641bb4c Mon Sep 17 00:00:00 2001 From: klaudia tamburi Date: Mon, 5 May 2025 15:05:49 +0200 Subject: [PATCH 3/5] pass conf middleware --- routes/web.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/routes/web.php b/routes/web.php index 4e2971a6..133fb43d 100644 --- a/routes/web.php +++ b/routes/web.php @@ -31,6 +31,6 @@ // 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')->middleware('[password.confirm]'); + ->name('verysecretpage')->middleware(['auth', 'password.confirm']); require __DIR__.'/auth.php'; From bbb7f6c02f0476b543071ef17a9d469d5fb5d5ed Mon Sep 17 00:00:00 2001 From: klaudia tamburi Date: Mon, 5 May 2025 15:15:51 +0200 Subject: [PATCH 4/5] fix --- app/Http/Controllers/ProfileController.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/Http/Controllers/ProfileController.php b/app/Http/Controllers/ProfileController.php index c99e2f5b..f35775c0 100644 --- a/app/Http/Controllers/ProfileController.php +++ b/app/Http/Controllers/ProfileController.php @@ -8,7 +8,9 @@ class ProfileController extends Controller { public function show() { - return view('auth.profile'); + return view('auth.profile', [ + 'user' => Auth::user() + ]); } public function update(ProfileUpdateRequest $request) From 7e98dad5b22bf3110fbd27856e0de5b634f358e9 Mon Sep 17 00:00:00 2001 From: klaudia tamburi Date: Mon, 5 May 2025 15:30:22 +0200 Subject: [PATCH 5/5] fix --- app/Http/Controllers/ProfileController.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/Http/Controllers/ProfileController.php b/app/Http/Controllers/ProfileController.php index f35775c0..511a7a86 100644 --- a/app/Http/Controllers/ProfileController.php +++ b/app/Http/Controllers/ProfileController.php @@ -3,13 +3,14 @@ namespace App\Http\Controllers; use Illuminate\Support\Facades\Hash; use App\Http\Requests\ProfileUpdateRequest; +use Illuminate\Support\Facades\Auth; class ProfileController extends Controller { public function show() { return view('auth.profile', [ - 'user' => Auth::user() + 'user' => auth()->user() ]); }