update
This commit is contained in:
parent
d62fddc907
commit
23dbc40097
|
@ -5,6 +5,7 @@
|
|||
use Illuminate\Console\Command;
|
||||
use App\Models\RiwayatDiagnosa;
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
|
||||
class DeleteOldRiwayat extends Command
|
||||
{
|
||||
|
@ -13,6 +14,7 @@ class DeleteOldRiwayat extends Command
|
|||
|
||||
public function handle()
|
||||
{
|
||||
Log::info('Command riwayat:delete-old dijalankan cron job pada '.now());
|
||||
$cutoffDate = Carbon::now()->subDays(7);
|
||||
$deleted = RiwayatDiagnosa::where('tanggal', '<', $cutoffDate)->delete();
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@ class Kernel extends ConsoleKernel
|
|||
{
|
||||
protected function schedule(Schedule $schedule)
|
||||
{
|
||||
$schedule->command('riwayat:delete-old')->daily();
|
||||
$schedule->command('riwayat:delete-old')->everyMinute();
|
||||
}
|
||||
|
||||
protected function commands()
|
||||
|
|
|
@ -11,6 +11,9 @@ class LoginController extends Controller
|
|||
// Show login form
|
||||
public function showLoginForm()
|
||||
{
|
||||
if (Auth::check()) {
|
||||
return redirect('/home'); // Ganti dengan redirect ke /dashboard jika diperlukan
|
||||
}
|
||||
return view('layouts.login');
|
||||
}
|
||||
|
||||
|
@ -22,30 +25,30 @@ public function login(Request $request)
|
|||
'username' => 'required|string|max:50',
|
||||
'password' => 'required|string',
|
||||
]);
|
||||
|
||||
|
||||
// Coba login
|
||||
if (Auth::attempt($credentials)) {
|
||||
$request->session()->regenerate();
|
||||
|
||||
|
||||
$user = Auth::user(); // dapatkan user yang sedang login
|
||||
|
||||
|
||||
// Cek role dan redirect sesuai role
|
||||
if ($user->role === 'admin') {
|
||||
return redirect()->intended('/dashboard');
|
||||
} elseif ($user->role === 'user') {
|
||||
return redirect()->intended('/home');
|
||||
}
|
||||
|
||||
|
||||
// Fallback redirect kalau role tidak dikenali
|
||||
return redirect('/login')->withErrors(['username' => 'Role tidak dikenali.']);
|
||||
}
|
||||
|
||||
|
||||
// Gagal login
|
||||
return back()->withErrors([
|
||||
'username' => 'Invalid credentials.',
|
||||
])->withInput();
|
||||
}
|
||||
|
||||
|
||||
|
||||
// Handle logout
|
||||
public function logout(Request $request)
|
||||
|
@ -59,5 +62,3 @@ public function logout(Request $request)
|
|||
return redirect('login');
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
|
@ -9,6 +9,7 @@
|
|||
use Illuminate\Http\Request;
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
|
||||
|
||||
|
||||
|
@ -17,18 +18,27 @@ class LupaPasswordController extends Controller
|
|||
// Menampilkan form input email untuk lupa password
|
||||
public function showInputEmail()
|
||||
{
|
||||
if (Auth::check()) {
|
||||
return redirect('/home'); // Ganti dengan redirect ke /dashboard jika diperlukan
|
||||
}
|
||||
return view('layouts.inputemail');
|
||||
}
|
||||
|
||||
// Menampilkan form OTP
|
||||
public function showOtpForm()
|
||||
{
|
||||
if (Auth::check()) {
|
||||
return redirect('/home'); // Ganti dengan redirect ke /dashboard jika diperlukan
|
||||
}
|
||||
return view('layouts.otp');
|
||||
}
|
||||
|
||||
// Menampilkan form reset password
|
||||
public function showResetPass()
|
||||
{
|
||||
if (Auth::check()) {
|
||||
return redirect('/home'); // Ganti dengan redirect ke /dashboard jika diperlukan
|
||||
}
|
||||
return view('layouts.resetpass');
|
||||
}
|
||||
|
||||
|
|
|
@ -13,6 +13,9 @@ class RegisterController extends Controller
|
|||
// Show registration form
|
||||
public function showRegistrationForm()
|
||||
{
|
||||
if (Auth::check()) {
|
||||
return redirect('/home'); // Ganti dengan redirect ke /dashboard jika diperlukan
|
||||
}
|
||||
return view('layouts.register');
|
||||
}
|
||||
|
||||
|
@ -45,5 +48,3 @@ public function register(Request $request)
|
|||
return redirect('login');
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
|
@ -27,5 +27,7 @@ class Kernel extends HttpKernel
|
|||
|
||||
protected $routeMiddleware = [
|
||||
'admin' => \App\Http\Middleware\AdminMiddleware::class,
|
||||
'user' => \App\Http\Middleware\UserMiddleware::class,
|
||||
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
|
||||
];
|
||||
}
|
||||
|
|
|
@ -0,0 +1,21 @@
|
|||
<?
|
||||
namespace App\Http\Middleware;
|
||||
|
||||
use Closure;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
|
||||
class RedirectIfAuthenticated
|
||||
{
|
||||
public function handle(Request $request, Closure $next)
|
||||
{
|
||||
// Jika pengguna sudah login
|
||||
if (Auth::check()) {
|
||||
// Jika sudah login, arahkan ke halaman yang sesuai (misalnya dashboard atau home)
|
||||
return redirect('/home'); // Atau redirect ke halaman yang sesuai
|
||||
}
|
||||
|
||||
// Jika belum login, lanjutkan ke rute yang diminta
|
||||
return $next($request);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,19 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Middleware;
|
||||
|
||||
use Closure;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
|
||||
class UserMiddleware
|
||||
{
|
||||
public function handle(Request $request, Closure $next)
|
||||
{
|
||||
if (Auth::check() && Auth::user()->role === 'user') {
|
||||
return $next($request);
|
||||
}
|
||||
|
||||
return redirect('/dashboard'); // Atau rute lain yang sesuai
|
||||
}
|
||||
}
|
|
@ -364,7 +364,7 @@ .header-area .main-nav .nav li {
|
|||
|
||||
.header-area .main-nav .nav li:last-child {
|
||||
padding-right: 0px;
|
||||
padding-left: 40px;
|
||||
padding-left: 0px;
|
||||
}
|
||||
|
||||
.header-area .main-nav .nav li:last-child a ,
|
||||
|
|
|
@ -357,7 +357,7 @@ .header-area .main-nav .nav li {
|
|||
|
||||
.header-area .main-nav .nav li:last-child {
|
||||
padding-right: 0px;
|
||||
padding-left: 40px;
|
||||
padding-left: 0px;
|
||||
}
|
||||
|
||||
.header-area .main-nav .nav li:last-child a ,
|
||||
|
|
|
@ -236,6 +236,18 @@
|
|||
}
|
||||
</style>
|
||||
</head>
|
||||
<script>
|
||||
// Fungsi untuk memuat ulang halaman /home saat admin klik tombol Diagnosa
|
||||
function reloadHomePage() {
|
||||
// Cek apakah halaman saat ini adalah /home
|
||||
if (window.location.pathname === '/home') {
|
||||
location.reload(); // Memuat ulang halaman /home
|
||||
} else {
|
||||
// Jika tidak berada di /home, arahkan ke /home
|
||||
window.location.href = '/home';
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<body>
|
||||
<header class="header-area header-sticky wow slideInDown" data-wow-duration="0.75s" data-wow-delay="0s">
|
||||
|
@ -254,10 +266,26 @@
|
|||
<li class="scroll-to-section"><a href="#about">Basic Pengetahuan</a></li>
|
||||
<li class="scroll-to-section"><a href="#PP">Panduan Penggunaan</a></li>
|
||||
<li class="scroll-to-section"><a href="#tentang">Tentang Pakar</a></li>
|
||||
<li><a href="{{ route('diagnosa') }}">Diagnosa</a></li>
|
||||
<li>
|
||||
@if(Auth::check())
|
||||
@if(Auth::user()->role === 'admin')
|
||||
<!-- Jika admin klik tombol Diagnosa, kita mencegah pengalihan dan memuat ulang halaman /home -->
|
||||
<a href="#" onclick="reloadHomePage()">Diagnosa</a>
|
||||
@else
|
||||
<!-- Jika user klik tombol Diagnosa, arahkan ke halaman diagnosa -->
|
||||
<a href="{{ route('diagnosa') }}">Diagnosa</a>
|
||||
@endif
|
||||
@else
|
||||
<!-- Jika pengguna belum login, tombol Login akan muncul -->
|
||||
<a href="{{ route('login') }}">Diagnosa</a>
|
||||
@endif
|
||||
</li>
|
||||
<li class="d-flex align-items-center">
|
||||
@if(Auth::check())
|
||||
<a href="#" class="main-red-button" onclick="togglePopup()">Profil</a>
|
||||
@if(Auth::user()->role === 'user')
|
||||
<!-- Tombol Profil hanya untuk user -->
|
||||
<a href="{{ route('profile') }}" class="main-red-button">Profil</a>
|
||||
@endif
|
||||
<a href="#" class="main-red-button"
|
||||
onclick="event.preventDefault(); document.getElementById('logout-form').submit();">
|
||||
Logout
|
||||
|
|
|
@ -11,7 +11,18 @@
|
|||
<form id="search" action="#" method="GET">
|
||||
<fieldset style="display: flex; justify-content: space-between; align-items: center; gap: 10px;">
|
||||
<div class="email">Masalah Pada Tanaman</div>
|
||||
@if(Auth::check())
|
||||
@if(Auth::user()->role === 'admin')
|
||||
<!-- Jika admin klik tombol Konsultasi Sekarang, kita refresh halaman /home -->
|
||||
<a href="#" class="main-button" onclick="reloadHomePage()">Konsultasi Sekarang</a>
|
||||
@else
|
||||
<!-- Jika user klik tombol Konsultasi Sekarang, diarahkan ke halaman diagnosa -->
|
||||
<a href="{{ route('diagnosa') }}" class="main-button">Konsultasi Sekarang</a>
|
||||
@endif
|
||||
@else
|
||||
<!-- Jika pengguna belum login, tombol Login bisa muncul (sesuai kebutuhan Anda) -->
|
||||
<a href="{{ route('login') }}" class="main-button">Konsultasi Sekarang</a>
|
||||
@endif
|
||||
</fieldset>
|
||||
</form>
|
||||
|
||||
|
|
121
routes/web.php
121
routes/web.php
|
@ -34,19 +34,19 @@
|
|||
// Admin Routes
|
||||
Route::middleware('admin')->group(function () {
|
||||
// Dashboard Admin
|
||||
Route::get('/dashboard', [DashboardController::class, 'dashboard'])->name('dashboard')->middleware('auth');
|
||||
Route::get('/dashboard', [DashboardController::class, 'dashboard'])->name('dashboard');
|
||||
Route::get('/admin/dashboard', [DashboardController::class, 'dashboard'])->name('admin.dashboard');
|
||||
|
||||
|
||||
// Daftar User
|
||||
Route::get('/daftaruser', [DaftarUserController::class, 'index'])->name('daftaruser')->middleware('auth');
|
||||
Route::get('/daftaruser', [DaftarUserController::class, 'index'])->name('daftaruser');
|
||||
Route::delete('/user/{id}', [DaftarUserController::class, 'destroy'])->name('user.destroy');
|
||||
Route::post('/user', [DaftarUserController::class, 'store'])->name('user.store');
|
||||
Route::get('/user/edit/{id}', [DaftarUserController::class, 'edit'])->name('user.edit');
|
||||
Route::put('/user/update/{id}', [DaftarUserController::class, 'update'])->name('user.update');
|
||||
|
||||
// Rules
|
||||
Route::get('/rules', [RulesController::class, 'index'])->name('rules')->middleware('auth');
|
||||
Route::get('/rules', [RulesController::class, 'index'])->name('rules');
|
||||
Route::post('/rules', [RulesController::class, 'store'])->name('rules.store');
|
||||
Route::put('/rules/{id}', [RulesController::class, 'update'])->name('rules.update');
|
||||
Route::delete('/rules/{id}', [RulesController::class, 'destroy'])->name('rules.destroy');
|
||||
|
@ -65,47 +65,69 @@
|
|||
Route::delete('/gejala/{id}', [DaftarGejalaController::class, 'destroy'])->name('gejala.destroy');
|
||||
});
|
||||
|
||||
// Route untuk menampilkan form input email
|
||||
Route::get('lupa-kata-sandi', [LupaPasswordController::class, 'showInputEmail'])->name('lupa.kata.sandi');
|
||||
Route::middleware('user')->group(function () {
|
||||
|
||||
// Route untuk mengirimkan OTP ke email
|
||||
Route::post('kirim-otp', [LupaPasswordController::class, 'sendOtp'])->name('otp.send');
|
||||
// Update pass Profile
|
||||
Route::post('/profile/update-password', [ProfileController::class, 'updatePassword'])->name('user.updatePassword');
|
||||
|
||||
// Route untuk menampilkan form OTP
|
||||
Route::get('otp', [LupaPasswordController::class, 'showOtpForm'])->name('otp.form');
|
||||
// Diagnosa Routes
|
||||
Route::get('diagnosa', [DiagnosaController::class, 'index'])->name('diagnosa');
|
||||
Route::post('/diagnosa/process', [DiagnosaController::class, 'process'])->name('diagnosa.process');
|
||||
Route::get('/diagnosa/hasil/{id}', [DiagnosaController::class, 'hasil'])->name('diagnosa.hasil');
|
||||
|
||||
// Route untuk memverifikasi OTP
|
||||
Route::post('verifikasi-otp', [LupaPasswordController::class, 'verifyOtp'])->name('otp.verify');
|
||||
|
||||
// Route untuk menampilkan form reset password
|
||||
Route::get('reset-password', [LupaPasswordController::class, 'showResetPass'])->name('reset.password.form');
|
||||
|
||||
// Route untuk melakukan reset password
|
||||
Route::post('reset-password', [LupaPasswordController::class, 'resetPassword'])->name('reset.password');
|
||||
|
||||
// Update pass Profile
|
||||
Route::post('/profile/update-password', [ProfileController::class, 'updatePassword'])
|
||||
->name('user.updatePassword')
|
||||
->middleware('auth');
|
||||
|
||||
// Registration Routes
|
||||
Route::get('register', [RegisterController::class, 'showRegistrationForm'])->name('register');
|
||||
Route::post('register', [RegisterController::class, 'register']);
|
||||
|
||||
// Diagnosa Routes
|
||||
Route::get('diagnosa', [DiagnosaController::class, 'index'])->name('diagnosa')->middleware('auth');
|
||||
Route::post('/diagnosa/process', [DiagnosaController::class, 'process'])->name('diagnosa.process')->middleware('auth');
|
||||
Route::get('/diagnosa/hasil/{id}', [DiagnosaController::class, 'hasil'])->name('diagnosa.hasil')->middleware('auth');
|
||||
|
||||
// Lupa Pass
|
||||
Route::get('/lupapass', function () {
|
||||
return view('layouts.inputemail');
|
||||
})->name('lupapass');
|
||||
// Profile Route
|
||||
Route::get('profile', [ProfileController::class, 'index'])->name('profile');
|
||||
Route::post('/profile/update', [ProfileController::class, 'updateProfile'])->name('user.updateProfile');
|
||||
|
||||
|
||||
// Login Routes
|
||||
Route::get('login', [LoginController::class, 'showLoginForm'])->name('login');
|
||||
Route::post('login', [LoginController::class, 'login']);
|
||||
// Route detail penyakit
|
||||
Route::get('/detailpenyakit', function () {
|
||||
return view('layouts.diagnosa.detailpenyakit');
|
||||
})->name('detailpenyakit');
|
||||
|
||||
Route::get('/history', [HistoryController::class, 'index'])->name('history');
|
||||
|
||||
// Route ke halaman detail riwayat
|
||||
Route::get('/history/{id}/detail', [HistoryController::class, 'detail'])->name('history.detail');
|
||||
Route::get('/history/{id}/print', [HistoryController::class, 'print'])->name('history.print');
|
||||
|
||||
// Rincian detail penyakit
|
||||
Route::get('/penyakit/{id}', [PenyakitController::class, 'show'])->name('rinciandetailpenyakit');
|
||||
});
|
||||
|
||||
Route::middleware('guest')->group(function () {
|
||||
|
||||
// Route untuk menampilkan form input email
|
||||
Route::get('lupa-kata-sandi', [LupaPasswordController::class, 'showInputEmail'])->name('lupa.kata.sandi');
|
||||
|
||||
// Route untuk mengirimkan OTP ke email
|
||||
Route::post('kirim-otp', [LupaPasswordController::class, 'sendOtp'])->name('otp.send');
|
||||
|
||||
// Route untuk menampilkan form OTP
|
||||
Route::get('otp', [LupaPasswordController::class, 'showOtpForm'])->name('otp.form');
|
||||
|
||||
// Route untuk memverifikasi OTP
|
||||
Route::post('verifikasi-otp', [LupaPasswordController::class, 'verifyOtp'])->name('otp.verify');
|
||||
|
||||
// Route untuk menampilkan form reset password
|
||||
Route::get('reset-password', [LupaPasswordController::class, 'showResetPass'])->name('reset.password.form');
|
||||
|
||||
// Route untuk melakukan reset password
|
||||
Route::post('reset-password', [LupaPasswordController::class, 'resetPassword'])->name('reset.password');
|
||||
|
||||
// Registration Routes
|
||||
Route::get('register', [RegisterController::class, 'showRegistrationForm'])->name('register');
|
||||
Route::post('register', [RegisterController::class, 'register']);
|
||||
|
||||
// Lupa Pass
|
||||
Route::get('/lupapass', function () {
|
||||
return view('layouts.inputemail');
|
||||
})->name('lupapass');
|
||||
|
||||
// Login Routes
|
||||
Route::get('login', [LoginController::class, 'showLoginForm'])->name('login');
|
||||
Route::post('login', [LoginController::class, 'login']);
|
||||
});
|
||||
|
||||
// Login Admin
|
||||
Route::get('/homeadmin', [AdminHomeController::class, 'index'])->middleware('auth');
|
||||
|
@ -118,30 +140,9 @@
|
|||
// Home Route
|
||||
Route::get('home', [HomeController::class, 'index'])->name('home');
|
||||
|
||||
// Profile Route
|
||||
Route::get('profile', [ProfileController::class, 'index'])->name('profile')->middleware('auth');
|
||||
Route::post('/profile/update', [ProfileController::class, 'updateProfile'])->name('user.updateProfile');
|
||||
|
||||
// Gejala Routes
|
||||
// Route::get('/diagnosa', [GejalaController::class, 'index'])->name('diagnosa')->middleware('auth');
|
||||
Route::post('/gejala/fetch', [GejalaController::class, 'fetch'])->name('gejala.fetch');
|
||||
|
||||
// Route untuk proses penambahan gejala
|
||||
// Route::post('/diagnosa/add-gejala', [GejalaController::class, 'process'])->name('diagnosa.process')->middleware('auth');
|
||||
|
||||
// Route detail penyakit
|
||||
Route::get('/detailpenyakit', function () {
|
||||
return view('layouts.diagnosa.detailpenyakit');
|
||||
})->name('detailpenyakit')->middleware('auth');
|
||||
|
||||
Route::middleware('auth')->group(function () {
|
||||
// Route ke halaman history via controller
|
||||
Route::get('/history', [HistoryController::class, 'index'])->name('history');
|
||||
|
||||
// Route ke halaman detail riwayat
|
||||
Route::get('/history/{id}/detail', [HistoryController::class, 'detail'])->name('history.detail');
|
||||
Route::get('/history/{id}/print', [HistoryController::class, 'print'])->name('history.print')->middleware('auth');
|
||||
});
|
||||
|
||||
// Rincian detail penyakit
|
||||
Route::get('/penyakit/{id}', [PenyakitController::class, 'show'])->name('rinciandetailpenyakit');
|
||||
|
|
Loading…
Reference in New Issue