From 80656203c060f9377fb2212cdfa540153da94e95 Mon Sep 17 00:00:00 2001
From: PappaLaity <38842298+PappaLaity@users.noreply.github.com>
Date: Wed, 15 Jan 2025 22:36:06 +0000
Subject: [PATCH 1/7] Route protected by Auth
---
routes/web.php | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/routes/web.php b/routes/web.php
index 71d04297..77d0529c 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::get('profile', [\App\Http\Controllers\ProfileController::class, 'show'])->name('profile.show');
-Route::put('profile', [\App\Http\Controllers\ProfileController::class, 'update'])->name('profile.update');
+Route::group(['middleware' => 'auth'], 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
@@ -33,4 +35,4 @@
Route::view('/verysecretpage', 'verysecretpage')
->name('verysecretpage');
-require __DIR__.'/auth.php';
+require __DIR__ . '/auth.php';
From bf75ab3ef3595ab7e542d7a8167897e73c28dd5a Mon Sep 17 00:00:00 2001
From: PappaLaity <38842298+PappaLaity@users.noreply.github.com>
Date: Wed, 15 Jan 2025 22:36:24 +0000
Subject: [PATCH 2/7] Link visible to logged-in users
---
resources/views/layouts/navigation.blade.php | 129 ++++++++++---------
1 file changed, 67 insertions(+), 62 deletions(-)
diff --git a/resources/views/layouts/navigation.blade.php b/resources/views/layouts/navigation.blade.php
index 785936e7..99014ca4 100644
--- a/resources/views/layouts/navigation.blade.php
+++ b/resources/views/layouts/navigation.blade.php
@@ -6,7 +6,7 @@
@@ -16,49 +16,53 @@
{{ __('Users') }}
{{-- Task: this "Profile" link should be visible only to logged-in users --}}
-
- {{ __('Profile') }}
-
+ @auth
+
+ {{ __('Profile') }}
+
+ @endauth
@auth
-
-
-
+
-
-
-
+ {{ __('Log Out') }}
+
+
+
+
@else
Log in
@if (Route::has('register'))
-
Register
+
Register
@endif
@endauth
@@ -66,13 +70,13 @@ class="flex items-center text-sm font-medium text-gray-500 transition duration-1
+ class="inline-flex justify-center items-center p-2 text-gray-400 rounded-md transition duration-150 ease-in-out hover:text-gray-500 hover:bg-gray-100 focus:outline-none focus:bg-gray-100 focus:text-gray-500">
@@ -80,38 +84,39 @@ class="inline-flex justify-center items-center p-2 text-gray-400 rounded-md tran
-
+
- @auth
-
-
{{ Auth::user()->name }}
-
{{ Auth::user()->email }}
-
+ @auth
+
+
{{ Auth::user()->name }}
+
{{ Auth::user()->email }}
+
-
-
-
-
- @else
-
-
- {{ __('Login') }}
-
- @if (Route::has('register'))
-
- {{ __('Register') }}
+ {{ __('Log Out') }}
+
+
+
+ @else
+
+
+ {{ __('Login') }}
- @endif
-
- @endauth
+ @if (Route::has('register'))
+
+ {{ __('Register') }}
+
+ @endif
+
+ @endauth
From 39f6ebcd818a00a1f6c1ec213f8f183d4906d42f Mon Sep 17 00:00:00 2001
From: PappaLaity <38842298+PappaLaity@users.noreply.github.com>
Date: Wed, 15 Jan 2025 22:38:21 +0000
Subject: [PATCH 3/7] Profile Fields.
---
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..9aad78b6 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 13b568ed03da713705a39f9b9ab66e69ef78b805 Mon Sep 17 00:00:00 2001
From: PappaLaity <38842298+PappaLaity@users.noreply.github.com>
Date: Wed, 15 Jan 2025 22:43:53 +0000
Subject: [PATCH 4/7] Profile Fields Update
---
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 9aad78b6..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="{{Auth::user()->name}}"
+ 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="{{Auth::user()->email}}"
+ value="{{auth()->user()->email}}"
required />
From 8d63ef500218809c32d2e583f5e5594f225bc243 Mon Sep 17 00:00:00 2001
From: PappaLaity <38842298+PappaLaity@users.noreply.github.com>
Date: Wed, 15 Jan 2025 23:23:48 +0000
Subject: [PATCH 5/7] Profile Update.
---
app/Http/Controllers/ProfileController.php | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/app/Http/Controllers/ProfileController.php b/app/Http/Controllers/ProfileController.php
index e0093a49..6ab99852 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
{
@@ -14,7 +15,14 @@ public function show()
public function update(ProfileUpdateRequest $request)
{
// Task: fill in the code here to update name and email
+ $user = $request->user();
+ $user->update($request->safe()->only(['name','email']));
// Also, update the password if it is set
+ if ($request->filled('password')) {
+ $user->update([
+ 'password'=>Hash::make($request->password)
+ ]);
+ }
return redirect()->route('profile.show')->with('success', 'Profile updated.');
}
From e7d5102058f9f5f984ef12b27de515f027a9ba3d Mon Sep 17 00:00:00 2001
From: PappaLaity <38842298+PappaLaity@users.noreply.github.com>
Date: Wed, 15 Jan 2025 23:24:20 +0000
Subject: [PATCH 6/7] Email verification and password confirmation
---
app/Models/User.php | 2 +-
routes/web.php | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
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/routes/web.php b/routes/web.php
index 77d0529c..e8b9d607 100644
--- a/routes/web.php
+++ b/routes/web.php
@@ -28,11 +28,11 @@
// 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(['auth', 'password.confirm']);
require __DIR__ . '/auth.php';
From e9a1e244540fc5be54324951dbe7abea23647f7b Mon Sep 17 00:00:00 2001
From: PappaLaity <38842298+PappaLaity@users.noreply.github.com>
Date: Wed, 15 Jan 2025 23:24:38 +0000
Subject: [PATCH 7/7] password should have at least one letter
---
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..c680e4ae 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(), 'regex:/[a-zA-Z]/'],
]);
$user = User::create([