This commit is contained in:
ghozahimma65 2025-09-25 20:33:45 +07:00
parent 89127f5804
commit a8e8cf191b
10 changed files with 91 additions and 86 deletions

View File

@ -16,19 +16,20 @@ public function login(Request $request)
{ {
$credentials = $request->only('email', 'password'); $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'); return redirect()->intended('/dashboard');
} else {
Auth::logout();
return back()->with('error', 'Hanya admin yang bisa login di website.');
}
} }
// kalau email atau password salah
return back()->with('error', 'Username atau password salah!'); return back()->with('error', 'Username atau password salah!');
} }
public function logout(Request $request)
{
Auth::logout();
$request->session()->invalidate();
$request->session()->regenerateToken();
return redirect('/login');
}
} }

View File

@ -6,19 +6,10 @@
use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable; use Illuminate\Notifications\Notifiable;
use Laravel\Fortify\TwoFactorAuthenticatable;
use Laravel\Jetstream\HasProfilePhoto;
use Laravel\Sanctum\HasApiTokens; use Laravel\Sanctum\HasApiTokens;
class User extends Authenticatable 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. * The attributes that are mass assignable.

View File

@ -14,8 +14,8 @@
*/ */
'defaults' => [ 'defaults' => [
'guard' => env('AUTH_GUARD', 'web'), 'guard' => 'web',
'passwords' => env('AUTH_PASSWORD_BROKER', 'users'), 'passwords' => 'users',
], ],
/* /*

View File

@ -156,7 +156,7 @@
| |
*/ */
'domain' => env('SESSION_DOMAIN'), 'domain' => null,
/* /*
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------

View File

@ -3,21 +3,14 @@
namespace Database\Seeders; namespace Database\Seeders;
use App\Models\User; use App\Models\User;
// use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder; use Illuminate\Database\Seeder;
class DatabaseSeeder extends Seeder class DatabaseSeeder extends Seeder
{ {
/**
* Seed the application's database.
*/
public function run(): void public function run(): void
{ {
$this->call(MasterSeeder::class); $this->call([
([ MasterSeeder::class,
'name' => 'Super Admin',
'email' => 'admin@paud.com',
'role' => 'admin',
]); ]);
} }
} }

View File

@ -8,59 +8,70 @@
use App\Models\Guru; use App\Models\Guru;
use App\Models\WaliMurid; use App\Models\WaliMurid;
use App\Models\Siswa; use App\Models\Siswa;
use Illuminate\Support\Facades\Hash;
class MasterSeeder extends Seeder class MasterSeeder extends Seeder
{ {
public function run(): void public function run(): void
{ {
// Admin user // Admin
User::create([ $admin = User::updateOrCreate(
['email' => 'admin@paud.com'],
[
'name' => 'Super Admin', 'name' => 'Super Admin',
'email' => 'admin@paud.com', 'password' => Hash::make('123456'),
'password' => bcrypt('123456'),
'role' => 'admin', 'role' => 'admin',
]); ]
);
// Guru user // Guru
$guruUser = User::create([ $guruUser = User::updateOrCreate(
['email' => 'guru@paud.com'],
[
'name' => 'Bu Guru', 'name' => 'Bu Guru',
'email' => 'guru@paud.com', 'password' => Hash::make('123456'),
'password' => bcrypt('123456'),
'role' => 'guru', 'role' => 'guru',
]); ]
$guru = Guru::create([ );
'user_id' => $guruUser->id, Guru::updateOrCreate(
'bidang' => 'Pengajar TK' ['user_id' => $guruUser->id],
]); ['bidang' => 'Pengajar TK']
);
// Wali murid user // Wali
$waliUser = User::create([ $waliUser = User::updateOrCreate(
['email' => 'wali@paud.com'],
[
'name' => 'Pak Budi', 'name' => 'Pak Budi',
'email' => 'wali@paud.com', 'password' => Hash::make('123456'),
'password' => bcrypt('123456'),
'role' => 'wali', 'role' => 'wali',
]); ]
$wali = WaliMurid::create([ );
'user_id' => $waliUser->id, $wali = WaliMurid::updateOrCreate(
['user_id' => $waliUser->id],
[
'alamat' => 'Jl. Mawar No. 10', 'alamat' => 'Jl. Mawar No. 10',
'lokasi_lat' => -8.1723, 'lokasi_lat' => -8.1723,
'lokasi_lng' => 113.6995, 'lokasi_lng' => 113.6995,
]); ]
);
// Kelas // Kelas
$kelas = Kelas::create([ $kelas = Kelas::updateOrCreate(
'nama_kelas' => 'Kelompok A', ['nama_kelas' => 'Kelompok A'],
'umur_group' => '4-5 tahun', ['umur_group' => '4-5 tahun']
]); );
// Siswa // Siswa
Siswa::create([ Siswa::updateOrCreate(
['nis' => 'S001'],
[
'nama' => 'Ani', 'nama' => 'Ani',
'nis' => 'S001',
'tanggal_lahir' => '2020-01-01', 'tanggal_lahir' => '2020-01-01',
'kelas_id' => $kelas->id, 'kelas_id' => $kelas->id,
'wali_id' => $wali->id, 'wali_id' => $wali->id,
'foto' => null, 'foto' => null,
]); ]
);
} }
} }

BIN
paud_monitoring Normal file

Binary file not shown.

View File

@ -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"> class="w-full mt-2 px-4 py-2 rounded-lg border focus:ring-2 focus:ring-green-400 outline-none">
</div> </div>
@if (session('error'))
<div style="color:red;">{{ session('error') }}</div>
@endif
<button type="submit" <button type="submit"
class="w-full py-3 rounded-lg bg-gradient-to-r from-green-400 to-green-600 text-white font-bold shadow-lg hover:opacity-90 transition"> class="w-full py-3 rounded-lg bg-gradient-to-r from-green-400 to-green-600 text-white font-bold shadow-lg hover:opacity-90 transition">
Login Login
@ -44,6 +48,7 @@ class="w-full py-3 rounded-lg bg-gradient-to-r from-green-400 to-green-600 text-
<p class="text-sm text-gray-500 mt-6 text-center md:text-left">© 2025 Simpaud Kartoharjo</p> <p class="text-sm text-gray-500 mt-6 text-center md:text-left">© 2025 Simpaud Kartoharjo</p>
</div> </div>
</div> </div>
</body> </body>

View File

@ -2,6 +2,7 @@
<x-slot name="header"> <x-slot name="header">
<h2 class="font-semibold text-xl text-gray-800 leading-tight"> <h2 class="font-semibold text-xl text-gray-800 leading-tight">
{{ __('Dashboard') }} {{ __('Dashboard') }}
<h1>Selamat datang, {{ Auth::user()->name }}!</h1>
</h2> </h2>
</x-slot> </x-slot>

View File

@ -3,13 +3,16 @@
use Illuminate\Support\Facades\Route; use Illuminate\Support\Facades\Route;
use App\Http\Controllers\AuthController; use App\Http\Controllers\AuthController;
Route::get('/login', [AuthController::class, 'showLogin'])->name('login.form'); Route::get('/login', [AuthController::class, 'showLogin'])->name('login');
Route::post('/login', [AuthController::class, 'login'])->name('login'); Route::post('/login', [AuthController::class, 'login']);
Route::post('/logout', [AuthController::class, 'logout'])->name('logout');
Route::get('/', function () { Route::get('/', function () {
return view('splash'); // tampilan splash screen return view('splash'); // tampilan splash screen
Route::middleware('auth')->group(function () {
Route::get('/dashboard', function () { Route::get('/dashboard', function () {
return view('dashboard'); return view('dashboard');
})->name('dashboard'); });
});
}); });