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');
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.');
}
}
// kalau email 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\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.

View File

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

View File

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

View File

@ -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,
]);
}
}

View File

@ -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([
// Admin
$admin = User::updateOrCreate(
['email' => 'admin@paud.com'],
[
'name' => 'Super Admin',
'email' => 'admin@paud.com',
'password' => bcrypt('123456'),
'password' => Hash::make('123456'),
'role' => 'admin',
]);
]
);
// Guru user
$guruUser = User::create([
// Guru
$guruUser = User::updateOrCreate(
['email' => 'guru@paud.com'],
[
'name' => 'Bu Guru',
'email' => 'guru@paud.com',
'password' => bcrypt('123456'),
'password' => Hash::make('123456'),
'role' => 'guru',
]);
$guru = Guru::create([
'user_id' => $guruUser->id,
'bidang' => 'Pengajar TK'
]);
]
);
Guru::updateOrCreate(
['user_id' => $guruUser->id],
['bidang' => 'Pengajar TK']
);
// Wali murid user
$waliUser = User::create([
// Wali
$waliUser = User::updateOrCreate(
['email' => 'wali@paud.com'],
[
'name' => 'Pak Budi',
'email' => 'wali@paud.com',
'password' => bcrypt('123456'),
'password' => Hash::make('123456'),
'role' => 'wali',
]);
$wali = WaliMurid::create([
'user_id' => $waliUser->id,
]
);
$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([
Siswa::updateOrCreate(
['nis' => 'S001'],
[
'nama' => 'Ani',
'nis' => 'S001',
'tanggal_lahir' => '2020-01-01',
'kelas_id' => $kelas->id,
'wali_id' => $wali->id,
'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">
</div>
@if (session('error'))
<div style="color:red;">{{ session('error') }}</div>
@endif
<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">
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>
</div>
</div>
</body>

View File

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

View File

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