From a8e8cf191bbcd8aeecd98b6cf6295f577b27368d Mon Sep 17 00:00:00 2001 From: ghozahimma65 Date: Thu, 25 Sep 2025 20:33:45 +0700 Subject: [PATCH] up --- app/Http/Controllers/AuthController.php | 29 +++---- app/Models/User.php | 9 --- config/auth.php | 6 +- config/session.php | 2 +- database/seeders/DatabaseSeeder.php | 15 +--- database/seeders/MasterSeeder.php | 97 +++++++++++++----------- paud_monitoring | Bin 0 -> 114688 bytes resources/views/auth/login.blade.php | 5 ++ resources/views/dashboard.blade.php | 1 + routes/web.php | 13 ++-- 10 files changed, 91 insertions(+), 86 deletions(-) create mode 100644 paud_monitoring diff --git a/app/Http/Controllers/AuthController.php b/app/Http/Controllers/AuthController.php index a35c6e6..88c89bb 100644 --- a/app/Http/Controllers/AuthController.php +++ b/app/Http/Controllers/AuthController.php @@ -12,23 +12,24 @@ public function showLogin() return view('auth.login'); } - public function login(Request $request) - { - $credentials = $request->only('email', 'password'); + public function login(Request $request) +{ + $credentials = $request->only('email', 'password'); - if (Auth::attempt($credentials)) { + if (Auth::guard('web')->attempt($credentials)) { + $request->session()->regenerate(); + return redirect()->intended('/dashboard');on()->regenerate(); + + // cek role di sini + if (Auth::user()->role === 'admin') { return redirect()->intended('/dashboard'); + } else { + Auth::logout(); + return back()->with('error', 'Hanya admin yang bisa login di website.'); } - - return back()->with('error', 'Username atau password salah!'); } - - public function logout(Request $request) - { - Auth::logout(); - $request->session()->invalidate(); - $request->session()->regenerateToken(); - return redirect('/login'); - } + // kalau email atau password salah + return back()->with('error', 'Username atau password salah!'); +} } \ No newline at end of file diff --git a/app/Models/User.php b/app/Models/User.php index 3dd467c..0ca6c6e 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -6,19 +6,10 @@ use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Notifications\Notifiable; -use Laravel\Fortify\TwoFactorAuthenticatable; -use Laravel\Jetstream\HasProfilePhoto; use Laravel\Sanctum\HasApiTokens; class User extends Authenticatable { - use HasApiTokens; - - /** @use HasFactory<\Database\Factories\UserFactory> */ - use HasFactory; - use HasProfilePhoto; - use Notifiable; - use TwoFactorAuthenticatable; /** * The attributes that are mass assignable. diff --git a/config/auth.php b/config/auth.php index 7d1eb0d..6b245e6 100644 --- a/config/auth.php +++ b/config/auth.php @@ -14,9 +14,9 @@ */ 'defaults' => [ - 'guard' => env('AUTH_GUARD', 'web'), - 'passwords' => env('AUTH_PASSWORD_BROKER', 'users'), - ], + 'guard' => 'web', + 'passwords' => 'users', +], /* |-------------------------------------------------------------------------- diff --git a/config/session.php b/config/session.php index f715097..e6a97b7 100644 --- a/config/session.php +++ b/config/session.php @@ -156,7 +156,7 @@ | */ - 'domain' => env('SESSION_DOMAIN'), + 'domain' => null, /* |-------------------------------------------------------------------------- diff --git a/database/seeders/DatabaseSeeder.php b/database/seeders/DatabaseSeeder.php index 44f751b..bc1f622 100644 --- a/database/seeders/DatabaseSeeder.php +++ b/database/seeders/DatabaseSeeder.php @@ -3,21 +3,14 @@ namespace Database\Seeders; use App\Models\User; -// use Illuminate\Database\Console\Seeds\WithoutModelEvents; use Illuminate\Database\Seeder; class DatabaseSeeder extends Seeder { - /** - * Seed the application's database. - */ public function run(): void { - $this->call(MasterSeeder::class); - ([ - 'name' => 'Super Admin', - 'email' => 'admin@paud.com', - 'role' => 'admin', - ]); + $this->call([ + MasterSeeder::class, + ]); } -} +} \ No newline at end of file diff --git a/database/seeders/MasterSeeder.php b/database/seeders/MasterSeeder.php index 0884f16..bba008d 100644 --- a/database/seeders/MasterSeeder.php +++ b/database/seeders/MasterSeeder.php @@ -8,59 +8,70 @@ use App\Models\Guru; use App\Models\WaliMurid; use App\Models\Siswa; +use Illuminate\Support\Facades\Hash; class MasterSeeder extends Seeder { public function run(): void { - // Admin user - User::create([ - 'name' => 'Super Admin', - 'email' => 'admin@paud.com', - 'password' => bcrypt('123456'), - 'role' => 'admin', - ]); + // Admin + $admin = User::updateOrCreate( + ['email' => 'admin@paud.com'], + [ + 'name' => 'Super Admin', + 'password' => Hash::make('123456'), + 'role' => 'admin', + ] + ); - // Guru user - $guruUser = User::create([ - 'name' => 'Bu Guru', - 'email' => 'guru@paud.com', - 'password' => bcrypt('123456'), - 'role' => 'guru', - ]); - $guru = Guru::create([ - 'user_id' => $guruUser->id, - 'bidang' => 'Pengajar TK' - ]); + // Guru + $guruUser = User::updateOrCreate( + ['email' => 'guru@paud.com'], + [ + 'name' => 'Bu Guru', + 'password' => Hash::make('123456'), + 'role' => 'guru', + ] + ); + Guru::updateOrCreate( + ['user_id' => $guruUser->id], + ['bidang' => 'Pengajar TK'] + ); - // Wali murid user - $waliUser = User::create([ - 'name' => 'Pak Budi', - 'email' => 'wali@paud.com', - 'password' => bcrypt('123456'), - 'role' => 'wali', - ]); - $wali = WaliMurid::create([ - 'user_id' => $waliUser->id, - 'alamat' => 'Jl. Mawar No. 10', - 'lokasi_lat' => -8.1723, - 'lokasi_lng' => 113.6995, - ]); + // Wali + $waliUser = User::updateOrCreate( + ['email' => 'wali@paud.com'], + [ + 'name' => 'Pak Budi', + 'password' => Hash::make('123456'), + 'role' => 'wali', + ] + ); + $wali = WaliMurid::updateOrCreate( + ['user_id' => $waliUser->id], + [ + 'alamat' => 'Jl. Mawar No. 10', + 'lokasi_lat' => -8.1723, + 'lokasi_lng' => 113.6995, + ] + ); // Kelas - $kelas = Kelas::create([ - 'nama_kelas' => 'Kelompok A', - 'umur_group' => '4-5 tahun', - ]); + $kelas = Kelas::updateOrCreate( + ['nama_kelas' => 'Kelompok A'], + ['umur_group' => '4-5 tahun'] + ); // Siswa - Siswa::create([ - 'nama' => 'Ani', - 'nis' => 'S001', - 'tanggal_lahir' => '2020-01-01', - 'kelas_id' => $kelas->id, - 'wali_id' => $wali->id, - 'foto' => null, - ]); + Siswa::updateOrCreate( + ['nis' => 'S001'], + [ + 'nama' => 'Ani', + 'tanggal_lahir' => '2020-01-01', + 'kelas_id' => $kelas->id, + 'wali_id' => $wali->id, + 'foto' => null, + ] + ); } } diff --git a/paud_monitoring b/paud_monitoring new file mode 100644 index 0000000000000000000000000000000000000000..4a6dcdc9e2ab7a22e10d56862ceb1ab3cf838c6d GIT binary patch literal 114688 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 literal 0 HcmV?d00001 diff --git a/resources/views/auth/login.blade.php b/resources/views/auth/login.blade.php index bf89b07..3b8eb8d 100644 --- a/resources/views/auth/login.blade.php +++ b/resources/views/auth/login.blade.php @@ -36,6 +36,10 @@ class="w-full mt-2 px-4 py-2 rounded-lg border focus:ring-2 focus:ring-green-400 class="w-full mt-2 px-4 py-2 rounded-lg border focus:ring-2 focus:ring-green-400 outline-none"> + @if (session('error')) +
{{ session('error') }}
+ @endif +