This commit is contained in:
parent
89127f5804
commit
a8e8cf191b
|
|
@ -13,22 +13,23 @@ public function showLogin()
|
||||||
}
|
}
|
||||||
|
|
||||||
public function login(Request $request)
|
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 {
|
||||||
|
|
||||||
return back()->with('error', 'Username atau password salah!');
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public function logout(Request $request)
|
|
||||||
{
|
|
||||||
Auth::logout();
|
Auth::logout();
|
||||||
$request->session()->invalidate();
|
return back()->with('error', 'Hanya admin yang bisa login di website.');
|
||||||
$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\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.
|
||||||
|
|
|
||||||
|
|
@ -14,9 +14,9 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
'defaults' => [
|
'defaults' => [
|
||||||
'guard' => env('AUTH_GUARD', 'web'),
|
'guard' => 'web',
|
||||||
'passwords' => env('AUTH_PASSWORD_BROKER', 'users'),
|
'passwords' => 'users',
|
||||||
],
|
],
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|--------------------------------------------------------------------------
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
|
@ -156,7 +156,7 @@
|
||||||
|
|
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
'domain' => env('SESSION_DOMAIN'),
|
'domain' => null,
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|--------------------------------------------------------------------------
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
|
@ -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',
|
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -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,
|
||||||
]);
|
]
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
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">
|
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>
|
||||||
|
|
|
||||||
|
|
@ -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>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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::get('/dashboard', function () {
|
Route::middleware('auth')->group(function () {
|
||||||
|
Route::get('/dashboard', function () {
|
||||||
return view('dashboard');
|
return view('dashboard');
|
||||||
})->name('dashboard');
|
});
|
||||||
|
});
|
||||||
});
|
});
|
||||||
Loading…
Reference in New Issue