From a71110c3335302af50450db3d471c3417ce81050 Mon Sep 17 00:00:00 2001 From: Dym Sohin Date: Thu, 8 Aug 2024 11:22:35 +0200 Subject: [PATCH] register --- .../Controllers/RegisteredUserController.php | 31 +++++++++++++++ app/Http/Controllers/SessionController.php | 2 +- app/Models/User.php | 1 + app/View/Components/input.php | 26 +++++++++++++ .../0001_01_01_000000_create_users_table.php | 1 + public/css/style.css | 39 ++++++++++++++++++- .../views/{admin => auth}/login.blade.php | 0 resources/views/auth/register.blade.php | 27 +++++++++++++ resources/views/components/input.blade.php | 17 ++++++++ .../views/components/layout-admin.blade.php | 23 ++++++++--- routes/web.php | 5 +++ 11 files changed, 163 insertions(+), 9 deletions(-) create mode 100644 app/Http/Controllers/RegisteredUserController.php create mode 100644 app/View/Components/input.php rename resources/views/{admin => auth}/login.blade.php (100%) create mode 100644 resources/views/auth/register.blade.php create mode 100644 resources/views/components/input.blade.php diff --git a/app/Http/Controllers/RegisteredUserController.php b/app/Http/Controllers/RegisteredUserController.php new file mode 100644 index 0000000..6fd1b9e --- /dev/null +++ b/app/Http/Controllers/RegisteredUserController.php @@ -0,0 +1,31 @@ +validate([ + 'fullname' => ['required'], + 'email' => ['required', 'email', 'confirmed'], + 'password' => ['required', Password::min(5), 'confirmed'], + ]); + + $user = User::create($validatedAttributes); + + Auth::login( $user ); + + return redirect('/admin'); + } +} diff --git a/app/Http/Controllers/SessionController.php b/app/Http/Controllers/SessionController.php index 5874623..899c8e4 100644 --- a/app/Http/Controllers/SessionController.php +++ b/app/Http/Controllers/SessionController.php @@ -8,7 +8,7 @@ class SessionController extends Controller { public function create() { - return view('admin.login'); + return view('auth.login'); } public function store() diff --git a/app/Models/User.php b/app/Models/User.php index 407a732..01e827c 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -17,6 +17,7 @@ class User extends Authenticatable * @var array */ protected $fillable = [ + 'fullname', 'email', 'password', ]; diff --git a/app/View/Components/input.php b/app/View/Components/input.php new file mode 100644 index 0000000..749d1ef --- /dev/null +++ b/app/View/Components/input.php @@ -0,0 +1,26 @@ +id(); + $table->string('fullname'); $table->string('email')->unique(); $table->timestamp('email_verified_at')->nullable(); $table->string('password'); diff --git a/public/css/style.css b/public/css/style.css index 64ddafe..d4dfc52 100644 --- a/public/css/style.css +++ b/public/css/style.css @@ -427,6 +427,7 @@ button { margin-left : -3rem ; background : #ddd ; border : 0.125rem solid #ddd +; box-shadow : inset 0 0 0 0.125rem #ddd } .buttons input[type="search"]:hover @@ -443,13 +444,21 @@ button .buttons input[type="search"] + button:hover , .buttons input[type="search"] + button:focus , .buttons input[type="search"] + button:active +{ border : 0.125rem solid #ddd +; box-shadow : inset 0 0 0 0.125rem transparent + , 0 0 0 0.125rem #fff + , 0 0 0 0.3rem #ddd +} + .buttons input[type="search"]:focus + button:hover +, .buttons input[type="search"]:active + button:hover { border : 0.125rem solid #bbb ; box-shadow : inset 0 0 0 0.125rem transparent , 0 0 0 0.125rem #fff - , 0 0 0 0.25rem #bbb + , 0 0 0 0.3rem #bbb } + .red { --b : var( --red ) } .yellow { --b : var( --yellow ) } .green { --b : var( --green ) } @@ -684,4 +693,30 @@ dfn[title] { border-bottom: 1pt dotted var(--text) } .w-30 -{ width : 30rem } \ No newline at end of file +{ width : 30rem } + +.error +{ color : var(--red) } + +.x-input +{ display : grid +; justify-content : center +; gap : 0.5rem 1rem +; grid-template : + ' label input ' + ' error error ' + auto / 10rem 14rem ; +} +.x-input label +{ grid-area : label +; justify-self : flex-end +; align-self : center +; text-align : right +} +.x-input input +{ grid-area : input +; justify-self : flex-start +; align-self : flex-start +} +.x-input .error +{ grid-area : error } \ No newline at end of file diff --git a/resources/views/admin/login.blade.php b/resources/views/auth/login.blade.php similarity index 100% rename from resources/views/admin/login.blade.php rename to resources/views/auth/login.blade.php diff --git a/resources/views/auth/register.blade.php b/resources/views/auth/register.blade.php new file mode 100644 index 0000000..a49c033 --- /dev/null +++ b/resources/views/auth/register.blade.php @@ -0,0 +1,27 @@ + + +
+ @csrf + + fullname + + email + email_confirmation + + password + password_confirmation + + +
+ +
diff --git a/resources/views/components/input.blade.php b/resources/views/components/input.blade.php new file mode 100644 index 0000000..32edfc6 --- /dev/null +++ b/resources/views/components/input.blade.php @@ -0,0 +1,17 @@ +
+ + merge()->filter(fn ($value, $key) => !in_array($key, ['title'])) }} + > + +@error( "$slot" ) +

{{ $message }}

+@enderror +
\ No newline at end of file diff --git a/resources/views/components/layout-admin.blade.php b/resources/views/components/layout-admin.blade.php index 5e72784..c078265 100644 --- a/resources/views/components/layout-admin.blade.php +++ b/resources/views/components/layout-admin.blade.php @@ -20,18 +20,29 @@ @guest + +Register +
@csrf - - - + email + password +
@endguest @auth {{ $slot }} + + +
+ @csrf + +
@endauth
@@ -41,7 +52,7 @@ class="gray" title="search" > - + rss
diff --git a/routes/web.php b/routes/web.php index 6665860..0946b3a 100644 --- a/routes/web.php +++ b/routes/web.php @@ -1,5 +1,6 @@ get('/admin', function ($name = null) { return view('admin.index'); }); + +Route::get('/register', [RegisteredUserController::class, 'create']); +Route::post('/register', [RegisteredUserController::class, 'store']); + Route::get('/login', [SessionController::class, 'create']); Route::post('/login', [SessionController::class, 'store']); Route::post('/logout', [SessionController::class, 'destroy']);