This commit is contained in:
parent
89127f5804
commit
a8e8cf191b
|
|
@ -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!');
|
||||
}
|
||||
}
|
||||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -14,9 +14,9 @@
|
|||
*/
|
||||
|
||||
'defaults' => [
|
||||
'guard' => env('AUTH_GUARD', 'web'),
|
||||
'passwords' => env('AUTH_PASSWORD_BROKER', 'users'),
|
||||
],
|
||||
'guard' => 'web',
|
||||
'passwords' => 'users',
|
||||
],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
|
|||
|
|
@ -156,7 +156,7 @@
|
|||
|
|
||||
*/
|
||||
|
||||
'domain' => env('SESSION_DOMAIN'),
|
||||
'domain' => null,
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
|
@ -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,
|
||||
]
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
||||
|
|
|
|||
|
|
@ -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::get('/dashboard', function () {
|
||||
return view('dashboard');
|
||||
})->name('dashboard');
|
||||
Route::middleware('auth')->group(function () {
|
||||
Route::get('/dashboard', function () {
|
||||
return view('dashboard');
|
||||
});
|
||||
});
|
||||
});
|
||||
Loading…
Reference in New Issue