diff --git a/app/Http/Controllers/RegisteredUserController.php b/app/Http/Controllers/RegisteredUserController.php new file mode 100644 index 0000000..94b6cd7 --- /dev/null +++ b/app/Http/Controllers/RegisteredUserController.php @@ -0,0 +1,30 @@ +validated(); + $status = UserStatus::Active->value; + if ($request->role === UserTypes::Broker){ + $status = UserStatus::Pending->value; + } + $data['status'] = $status; + + User::create($data); + + return to_route('login')->with('success', 'User registered successfully.'); + } +} diff --git a/app/Http/Requests/StoreRegisterdUser.php b/app/Http/Requests/StoreRegisterdUser.php new file mode 100644 index 0000000..f7bfccb --- /dev/null +++ b/app/Http/Requests/StoreRegisterdUser.php @@ -0,0 +1,35 @@ +|string> + */ + public function rules(): array + { + return [ + 'name' => 'required|string|max:255', + 'password' => ['required', 'confirmed', Password::min(8)->letters()->mixedCase()->numbers()->symbols()], + 'email' => 'required|string|email|max:255|unique:users', + 'role' => ['required', Rule::in(UserTypes::values()), Rule::notIn(UserTypes::Admin->value)], + ]; + } +} diff --git a/app/Models/User.php b/app/Models/User.php index 749c7b7..29980cb 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -21,6 +21,8 @@ class User extends Authenticatable 'name', 'email', 'password', + 'status', + 'role', ]; /** diff --git a/resources/views/auth/login.blade.php b/resources/views/auth/login.blade.php index 966aff0..a6f21eb 100644 --- a/resources/views/auth/login.blade.php +++ b/resources/views/auth/login.blade.php @@ -26,7 +26,7 @@

Don't have an account? - Sign Up + Sign Up

diff --git a/resources/views/auth/register.blade.php b/resources/views/auth/register.blade.php index 99014dd..85bc739 100644 --- a/resources/views/auth/register.blade.php +++ b/resources/views/auth/register.blade.php @@ -19,10 +19,11 @@ class="bg-linear-135 flex-1 overflow-y-scroll wrapper py-12 from-[#EFF6FF] to-[#

Join {{config('app.name')}} and start discovering great deals

-
+ + @csrf - + diff --git a/resources/views/components/inline-error.blade.php b/resources/views/components/inline-error.blade.php new file mode 100644 index 0000000..5726351 --- /dev/null +++ b/resources/views/components/inline-error.blade.php @@ -0,0 +1,4 @@ +@props(['name' => '']) +@error($name) +{{ $message }} +@enderror diff --git a/resources/views/components/input.blade.php b/resources/views/components/input.blade.php index 9215d15..6cc9363 100644 --- a/resources/views/components/input.blade.php +++ b/resources/views/components/input.blade.php @@ -6,5 +6,5 @@ @endif - + diff --git a/resources/views/components/navbar.blade.php b/resources/views/components/navbar.blade.php index 830cfb7..9a59b13 100644 --- a/resources/views/components/navbar.blade.php +++ b/resources/views/components/navbar.blade.php @@ -16,7 +16,7 @@ @@ -41,7 +41,7 @@ Login - Register + Register diff --git a/resources/views/components/select.blade.php b/resources/views/components/select.blade.php index 573dd3b..e9b37eb 100644 --- a/resources/views/components/select.blade.php +++ b/resources/views/components/select.blade.php @@ -10,3 +10,4 @@ @endforeach + diff --git a/routes/web.php b/routes/web.php index daa7368..1599687 100644 --- a/routes/web.php +++ b/routes/web.php @@ -1,10 +1,11 @@ name('home'); Route::view('/login', 'auth.login')->name('login'); -Route::view('/register', 'auth.register')->name('register'); +Route::resource('/register', RegisteredUserController::class)->only(['create', 'store']);