From ce0d75ef00beb71ac57610f2522a6f71e541a94d Mon Sep 17 00:00:00 2001 From: timontuitoek Date: Thu, 31 Oct 2024 11:27:28 +0300 Subject: [PATCH] Testing Auth --- .../Auth/RegisteredUserController.php | 2 +- app/Http/Controllers/ProfileController.php | 12 ++++++++++++ app/Models/User.php | 2 +- laravel | Bin 0 -> 49152 bytes resources/views/auth/profile.blade.php | 4 ++-- resources/views/layouts/navigation.blade.php | 2 ++ routes/web.php | 10 ++++++++-- 7 files changed, 26 insertions(+), 6 deletions(-) create mode 100644 laravel 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([ diff --git a/app/Http/Controllers/ProfileController.php b/app/Http/Controllers/ProfileController.php index e0093a49..b9a1c1d5 100644 --- a/app/Http/Controllers/ProfileController.php +++ b/app/Http/Controllers/ProfileController.php @@ -15,6 +15,18 @@ 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(); + + //validate the request + $request->validated(); + + //update the user + $user->name = $request->name; + $user->email = $request->email; + if ($request->password) { + $user->password = bcrypt($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/laravel b/laravel new file mode 100644 index 0000000000000000000000000000000000000000..e530687fd268e55fcf3a1c75789fb35033f577f8 GIT binary patch literal 49152 zcmeI(&u`mQ0Kjp(P3!&+(u6F;0oMho(WWUWlOWjpt*M>T_&|N?nf;q~x3q_CZBxar8-Hl!=VfE_ugzaJ{@w`J zzghcjwYT!K3T8t90R#|00D=EoVED0W;kT~Wkr#a#guW-bj%c@K7&?*vN_wLY zXW+T72eLTH#=&u8zuB-(j}D)mHmt*=uN&W4c5&LY)KPJ^<$E_Jw5?q`sexS?iZ#Rh zsjgpr@UQh0t*&&U%f5PxYo8pt9p{#O>!Zrwq1Lw*ey65P3a}qoY2!u}v@2IXtQuy$ zu3vv2#bL#G#i47X7Bu(2dfd2;)9u)n>qYW~46J_O_C#=Ly^@!f7(~A7wFB9cUSxT` zdJVeWToq$d+d3CP`=tnqlVnTJl;MfqEjbIz6fL*wMy?EPE0PzHsz_IakuwNo#}Scj zbwng1wNS=&4HTyo~3{%ZT4C)<(h zdnsWOr5D~c%^)D=-O%$lhWjYLMxg<$NF z4%{SUsc^`?oj65E!l#w2T-{qVOw-h_my)I@(aBpW-^@wAcOI5EE(R%n5k}hQ=Q425 z+?g4z=Kol{a2<&kv|dXF>36{-$vZ9^PZyTs@$ft`316#~NjjlabH!8NlKI2MoYPF? zZru0>DraT*v2K{#+xpeLq|BcCA`tO33a5JuxsvQ@#D7{1CfO$jlgX$sS|Vz{oPINm z*X~MuZC)yWrj>s$|5^^z4jTdpAb$-SMl^!WN;FaN2jKQ;sqKmY**5I_I{1Q0*~0R#}36M-## zaa*7KR3I$H*Z=BA|7-{#fB*srAbh6{#~n=55I_I{1Q0*~ z0R#|0009ILPy#&vXBZ%W00IagfB*srAb{00IagfB*srAbz>% literal 0 HcmV?d00001 diff --git a/resources/views/auth/profile.blade.php b/resources/views/auth/profile.blade.php index 70e8a8e1..aa775f59 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 /> 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..56ca7229 100644 --- a/routes/web.php +++ b/routes/web.php @@ -20,17 +20,23 @@ 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']) + ->middleware('auth') + ->name('profile.show'); +Route::put('profile', [\App\Http\Controllers\ProfileController::class, 'update']) + ->middleware('auth') + ->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') + ->middleware('verified') ->name('secretpage'); // Task: this "/verysecretpage" URL should ask user for verifying their password once again // You need to add some middleware here Route::view('/verysecretpage', 'verysecretpage') + ->middleware('password.confirm') ->name('verysecretpage'); require __DIR__.'/auth.php';