From f309f1c6459b7bda24e0df2042a9dd72c16e3d95 Mon Sep 17 00:00:00 2001 From: rizkyilhampra Date: Thu, 21 Nov 2024 12:54:46 +0800 Subject: [PATCH] feat(auth): adds guest login functionality --- README.md | 1 + app/Http/Controllers/Controller.php | 30 ++++---- app/Http/Controllers/GuestController.php | 13 ++++ resources/views/admin/beranda.blade.php | 12 ++-- .../histori-diagnosis.blade.php | 8 ++- resources/views/auth/login.blade.php | 2 + .../views/layouts/admin/navbar.blade.php | 25 ++++--- .../views/pdf/histori-diagnosis.blade.php | 10 ++- routes/web.php | 68 +++++++++---------- 9 files changed, 106 insertions(+), 63 deletions(-) create mode 100644 app/Http/Controllers/GuestController.php diff --git a/README.md b/README.md index 12b8888..781fc5a 100644 --- a/README.md +++ b/README.md @@ -319,6 +319,7 @@ Jika Anda menghadapi masalah atau memiliki pertanyaan, Anda dapat: ## Roadmap - [x] *Implement scheduled command for RajaOngkir API re-caching* +- [x] *Allow guests to access Admin Panel* ## Next diff --git a/app/Http/Controllers/Controller.php b/app/Http/Controllers/Controller.php index 0c3282a..6f4bb1b 100644 --- a/app/Http/Controllers/Controller.php +++ b/app/Http/Controllers/Controller.php @@ -7,6 +7,7 @@ use Illuminate\Foundation\Auth\Access\AuthorizesRequests; use Illuminate\Foundation\Bus\DispatchesJobs; use Illuminate\Foundation\Validation\ValidatesRequests; +use Illuminate\Http\RedirectResponse; use Illuminate\Routing\Controller as BaseController; use Illuminate\Support\Facades\Gate as FacadesGate; use Laravel\Fortify\Fortify; @@ -15,34 +16,39 @@ class Controller extends BaseController { use AuthorizesRequests, DispatchesJobs, ValidatesRequests; - public function authenticated() + public function authenticated(): RedirectResponse { - $user = User::find(auth()->user()->id); + $user = User::find(auth('web')->user()->id); $user->update(['last_login_at' => now()]); - if (FacadesGate::allows('asAdmin')) { - return redirect()->intended(Fortify::redirects('home', route('admin.beranda')))->with('success-login-admin'); - } else if (FacadesGate::allows('asUser')) { - return redirect()->intended(Fortify::redirects('home', route('index')))->with('success', 'Login berhasil, selamat datang ' . $user->name . '!'); + if (! FacadesGate::allows('asAdmin')) { + return redirect()->intended(Fortify::redirects('home', route('index')))->with('success', 'Login berhasil, selamat datang '.$user->name.'!'); } - return redirect('/'); + + return redirect()->intended(Fortify::redirects('home', route('admin.beranda')))->with('success-login-admin'); } - public static function loginDuration() + public static function loginDuration(): ?string { - $lastLogin = auth()->user()->last_login_at; + if (! auth('web')->check()) { + return null; + } + + $lastLogin = auth('web')->user()->last_login_at; $diffInMinutes = Carbon::parse($lastLogin)->diffInMinutes(); if ($diffInMinutes < 60) { - return floor($diffInMinutes) . ' menit'; + return floor($diffInMinutes).' menit'; } if ($diffInMinutes < 1440) { $diffInHours = floor($diffInMinutes / 60); - return $diffInHours . ' jam'; + + return $diffInHours.' jam'; } $diffInDays = floor($diffInMinutes / 1440); - return $diffInDays . ' hari'; + + return $diffInDays.' hari'; } } diff --git a/app/Http/Controllers/GuestController.php b/app/Http/Controllers/GuestController.php new file mode 100644 index 0000000..18d9fd7 --- /dev/null +++ b/app/Http/Controllers/GuestController.php @@ -0,0 +1,13 @@ +route('admin.beranda')->with('success-login-admin'); + } +} diff --git a/resources/views/admin/beranda.blade.php b/resources/views/admin/beranda.blade.php index f773944..b6dd718 100644 --- a/resources/views/admin/beranda.blade.php +++ b/resources/views/admin/beranda.blade.php @@ -10,7 +10,11 @@
-

Selamat datang kembali, {{ auth()->user()->name }}!

+ @auth +

Selamat datang kembali, {{ auth()->user()->name }}!

+ @else +

Selamat datang!

+ @endauth

Disini adalah tempat untuk mengelola penyakit, gejala, rule, dan diagnosis

@@ -86,7 +90,7 @@

Provinsi Pengguna

- +
@@ -96,7 +100,7 @@

Kota Pengguna

- +
@@ -106,7 +110,7 @@

Profesi Pengguna

- +
diff --git a/resources/views/admin/histori-diagnosis/histori-diagnosis.blade.php b/resources/views/admin/histori-diagnosis/histori-diagnosis.blade.php index e60508d..624fd2b 100644 --- a/resources/views/admin/histori-diagnosis/histori-diagnosis.blade.php +++ b/resources/views/admin/histori-diagnosis/histori-diagnosis.blade.php @@ -66,7 +66,9 @@ No Nama Pengguna - Email Pengguna + @auth + Email Pengguna + @endauth Nama Penyakit Tanggal Dibuat/Diubah Aksi @@ -79,7 +81,9 @@ {{ $loop->iteration }} {{ $value['user']['name'] }} - {{ $value['user']['email'] }} + @auth + {{ $value['user']['email'] }} + @endauth @if ($value['penyakit']['id'] == null) Penyakit tidak ditemukan diff --git a/resources/views/auth/login.blade.php b/resources/views/auth/login.blade.php index 13062af..7a5f788 100644 --- a/resources/views/auth/login.blade.php +++ b/resources/views/auth/login.blade.php @@ -71,6 +71,8 @@ class="form-control @error('password') is-invalid @enderror" name="password"
Belum punya akun? Daftar disini +
+ atau Masuk sebagai Tamu
diff --git a/resources/views/layouts/admin/navbar.blade.php b/resources/views/layouts/admin/navbar.blade.php index 2db23a5..66ad8e7 100644 --- a/resources/views/layouts/admin/navbar.blade.php +++ b/resources/views/layouts/admin/navbar.blade.php @@ -1,5 +1,4 @@
- @@ -7,14 +6,24 @@