fix seeder menu role and user assign, create 503 page and fix redirect home

This commit is contained in:
arifal
2025-03-12 15:37:22 +07:00
parent 238aaba96c
commit a1f4bd7f81
9 changed files with 442 additions and 403 deletions

View File

@@ -15,17 +15,23 @@ class DatabaseSeeder extends Seeder
*/
public function run(): void
{
// User::factory(10)->create();
User::updateOrCreate(
['email' => 'user@demo.com'], // Kondisi pencarian
[
'name' => 'Darkone',
'email_verified_at' => now(),
'password' => Hash::make('password'),
'firstname' => 'John',
'lastname' => 'Doe',
'position' => 'crusial',
'remember_token' => Str::random(10),
]
);
User::factory()->create([
'name' => 'Darkone',
'email' => 'user@demo.com',
'email_verified_at' => now(),
'password' => Hash::make('password'),
'firstname' => 'John',
'lastname' => 'Doe',
'position' => 'crusial',
'remember_token' => Str::random(10),
$this->call([
RoleSeeder::class,
MenuSeeder::class,
UsersRoleMenuSeeder::class
]);
}
}

View File

@@ -0,0 +1,287 @@
<?php
namespace Database\Seeders;
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder;
use App\Models\Menu;
use Illuminate\Support\Arr;
class MenuSeeder extends Seeder
{
/**
* Run the database seeds.
*/
public function run(): void
{
$menus = [
[
"name" => "Dashboard",
"url" => "/dashboard",
"icon" => "mingcute:home-3-line",
"parent_id" => null,
"sort_order" => 1,
"children" => [
[
"name" => "Dashboard Pimpinan",
"url" => "dashboard.home",
"icon" => null,
"sort_order" => 1,
],
[
"name" => "Dashboard PBG",
"url" => "dashboard.pbg",
"icon" => null,
"sort_order" => 2,
],
[
"name" => "Dashboard Potensi",
"url" => '/potentials',
"icon" => null,
"sort_order" => 3,
"children" => [
[
"name" => "Luar Sistem",
"url" => "dashboard.potentials.inside_system",
"icon" => null,
"sort_order" => 1,
],
[
"name" => "Dalam Sistem",
"url" => "dashboard.potentials.outside_system",
"icon" => null,
"sort_order" => 2,
],
]
],
[
"name" => "PETA",
"url" => "dashboard.maps",
"icon" => null,
"sort_order" => 4,
],
],
],
[
"name" => "Master",
"url" => "/master",
"icon" => "mingcute:cylinder-line",
"parent_id" => null,
"sort_order" => 2,
"children" => [
[
"name" => "Users",
"url" => "users.index",
"icon" => null,
"sort_order" => 1,
],
]
],
[
"name" => "Settings",
"url" => "/settings",
"icon" => "mingcute:settings-6-line",
"parent_id" => null,
"sort_order" => 3,
"children" => [
[
"name" => "Syncronize",
"url" => "settings.syncronize",
"icon" => null,
"sort_order" => 1,
],
[
"name" => "Menu",
"url" => "menus.index",
"icon" => null,
"sort_order" => 2,
],
[
"name" => "Role",
"url" => "roles.index",
"icon" => null,
"sort_order" => 3,
],
]
],
[
"name" => "Data Settings",
"url" => "/data-settings",
"icon" => "mingcute:settings-1-line",
"parent_id" => null,
"sort_order" => 4,
"children" => [
[
"name" => "Setting Dashboard",
"url" => "data-settings.index",
"icon" => null,
"sort_order" => 1,
],
]
],
[
"name" => "Data",
"url" => "/data",
"icon" => "mingcute:task-line",
"parent_id" => null,
"sort_order" => 5,
"children" => [
[
"name" => "PBG",
"url" => "pbg-task.index",
"icon" => null,
"sort_order" => 1,
],
[
"name" => "Reklame",
"url" => "web.advertisements.index",
"icon" => null,
"sort_order" => 2,
],
[
"name" => "Usaha atau Industri",
"url" => "business-industries.index",
"icon" => null,
"sort_order" => 3,
],
[
"name" => "UMKM",
"url" => "web-umkm.index",
"icon" => null,
"sort_order" => 4,
],
[
"name" => "Pariwisata",
"url" => "web-tourisms.index",
"icon" => null,
"sort_order" => 5,
],
[
"name" => "Tata Ruang",
"url" => "web-spatial-plannings.index",
"icon" => null,
"sort_order" => 6,
],
[
"name" => "PDAM",
"url" => "customers",
"icon" => null,
"sort_order" => 7,
],
[
"name" => "Google Sheets",
"url" => "google-sheets",
"icon" => null,
"sort_order" => 8,
],
[
"name" => "TPA TPT",
"url" => "tpa-tpt.index",
"icon" => null,
"sort_order" => 9,
],
]
],
[
"name" => "Laporan",
"url" => "/laporan",
"icon" => "mingcute:report-line",
"parent_id" => null,
"sort_order" => 6,
"children" => [
[
"name" => "Lap Pariwisata",
"url" => "tourisms-report.index",
"icon" => null,
"sort_order" => 1,
],
[
"name" => "Lap Pimpinan",
"url" => "bigdata-resumes",
"icon" => null,
"sort_order" => 2,
],
[
"name" => "Rekap Pembayaran",
"url" => "payment-recaps",
"icon" => null,
"sort_order" => 3,
],
[
"name" => "Lap Rekap Data Pembayaran",
"url" => "report-payment-recaps",
"icon" => null,
"sort_order" => 4,
],
[
"name" => "Lap PBG (PTSP)",
"url" => "report-pbg-ptsp",
"icon" => null,
"sort_order" => 5,
],
]
],
[
"name" => "Neng Bedas",
"url" => "/chat",
"icon" => "mingcute:wechat-line",
"parent_id" => null,
"sort_order" => 7,
"children" => [
[
"name" => "Chat",
"url" => "main-chatbot.index",
"icon" => null,
"sort_order" => 1,
],
]
],
[
"name" => "Approval",
"url" => "/approval",
"icon" => "mingcute:user-follow-2-line",
"parent_id" => null,
"sort_order" => 8,
"children" => [
[
"name" => "Approval Pejabat",
"url" => "approval-list",
"icon" => null,
"sort_order" => 1,
],
]
],
[
"name" => "Tools",
"url" => "/tools",
"icon" => "mingcute:tool-line",
"parent_id" => null,
"sort_order" => 9,
"children" => [
[
"name" => "Undangan",
"url" => "invitations",
"icon" => null,
"sort_order" => 1,
],
]
],
];
foreach ($menus as $menuData) {
$this->createOrUpdateMenu($menuData);
}
}
private function createOrUpdateMenu($menuData, $parentId = null){
$menuData['parent_id'] = $parentId;
$menu = Menu::updateOrCreate(['name' => $menuData['name']], Arr::except($menuData, ['children']));
if(!empty($menuData['children'])){
foreach($menuData['children'] as $child){
$this->createOrUpdateMenu($child, $menu->id);
}
}
}
}

View File

@@ -0,0 +1,37 @@
<?php
namespace Database\Seeders;
use App\Models\Role;
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder;
class RoleSeeder extends Seeder
{
/**
* Run the database seeds.
*/
public function run(): void
{
$roles = [
[
"name" => "superadmin",
"description" => "show all menus for super admins",
],
[
"name" => "admin",
"description" => "show only necessary menus for admins",
],
[
"name" => "operator",
"description" => "show only necessary menus for operators",
],
[
"name" => "user",
"description" => "show only necessary menus for users",
]
];
Role::upsert($roles, ['name']);
}
}

View File

@@ -13,400 +13,54 @@ class UsersRoleMenuSeeder extends Seeder
/**
* Run the database seeds.
*/
public function run(): void
public function run(): void
{
$roles = [
[
"name" => "superadmin",
"description" => "show all menus for super admins",
// Fetch roles in a single query
$roles = Role::whereIn('name', ['superadmin', 'admin', 'operator'])->get()->keyBy('name');
// Fetch all menus in a single query and index by name
$menus = Menu::whereIn('name', [
'Dashboard', 'Master', 'Settings', 'Data Settings', 'Data', 'Laporan', 'Neng Bedas',
'Approval', 'Tools', 'Dashboard Pimpinan', 'Dashboard PBG', 'Users', 'Syncronize',
'Menu', 'Role', 'Setting Dashboard', 'PBG', 'Reklame', 'Usaha atau Industri', 'Pariwisata',
'Lap Pariwisata', 'UMKM', 'Dashboard Potensi', 'Tata Ruang', 'PDAM', 'PETA',
'Lap Pimpinan', 'Chat', 'Dalam Sistem', 'Luar Sistem', 'Google Sheets', 'TPA TPT',
'Approval Pejabat', 'Undangan', 'Rekap Pembayaran', 'Lap Rekap Data Pembayaran', 'Lap PBG (PTSP)'
])->get()->keyBy('name');
// Define access levels for each role
$permissions = [
'superadmin' => [
'Dashboard', 'Master', 'Settings', 'Data Settings', 'Data', 'Laporan', 'Neng Bedas',
'Approval', 'Tools', 'Dashboard Pimpinan', 'Dashboard PBG', 'Users', 'Syncronize',
'Menu', 'Role', 'Setting Dashboard', 'PBG', 'Reklame', 'Usaha atau Industri', 'Pariwisata',
'Lap Pariwisata', 'UMKM', 'Dashboard Potensi', 'Tata Ruang', 'PDAM', 'Dalam Sistem',
'Luar Sistem', 'Lap Pimpinan', 'Chat', 'Google Sheets', 'TPA TPT', 'Approval Pejabat',
'Undangan', 'Rekap Pembayaran', 'Lap Rekap Data Pembayaran', 'Lap PBG (PTSP)'
],
[
"name" => "admin",
"description" => "show only necessary menus for admins",
],
[
"name" => "operator",
"description" => "show only necessary menus for operators",
]
'admin' => ['Dashboard', 'Master', 'Settings'],
'operator' => ['Dashboard', 'Data', 'Laporan']
];
Role::upsert($roles, ['name']);
// Define permission levels
$superadminPermissions = ["allow_show" => true, "allow_create" => true, "allow_update" => true, "allow_destroy" => true];
$adminPermissions = ["allow_show" => true, "allow_create" => true, "allow_update" => true, "allow_destroy" => true];
$operatorPermissions = ["allow_show" => true, "allow_create" => false, "allow_update" => false, "allow_destroy" => false];
$parent_menus = [
[
"name" => "Dashboard",
"url" => "/dashboard",
"icon" => "mingcute:home-3-line",
"parent_id" => null,
"sort_order" => 1,
],
[
"name" => "Master",
"url" => "/master",
"icon" => "mingcute:cylinder-line",
"parent_id" => null,
"sort_order" => 2,
],
[
"name" => "Settings",
"url" => "/settings",
"icon" => "mingcute:settings-6-line",
"parent_id" => null,
"sort_order" => 3,
],
[
"name" => "Data Settings",
"url" => "/data-settings",
"icon" => "mingcute:settings-1-line",
"parent_id" => null,
"sort_order" => 4,
],
[
"name" => "Data",
"url" => "/data",
"icon" => "mingcute:task-line",
"parent_id" => null,
"sort_order" => 5,
],
[
"name" => "Laporan",
"url" => "/laporan",
"icon" => "mingcute:report-line",
"parent_id" => null,
"sort_order" => 6,
],
[
"name" => "Neng Bedas",
"url" => "/chat",
"icon" => "mingcute:wechat-line",
"parent_id" => null,
"sort_order" => 7,
],
[
"name" => "Approval",
"url" => "/approval",
"icon" => "mingcute:user-follow-2-line",
"parent_id" => null,
"sort_order" => 8,
],
[
"name" => "Tools",
"url" => "/tools",
"icon" => "mingcute:tool-line",
"parent_id" => null,
"sort_order" => 9,
],
];
foreach ($parent_menus as $parent_menu) {
Menu::firstOrCreate(['name' => $parent_menu['name']], $parent_menu);
// Assign menus to roles
foreach ($permissions as $roleName => $menuNames) {
$role = $roles[$roleName] ?? null;
if ($role) {
$role->menus()->sync(
collect($menuNames)->mapWithKeys(fn($menuName) => [
$menus[$menuName]->id => ($roleName === 'superadmin' ? $superadminPermissions :
($roleName === 'admin' ? $adminPermissions : $operatorPermissions))
])->toArray()
);
}
}
// Attach Menus to Roles
$superadmin = Role::where('name', 'superadmin')->first();
$admin = Role::where('name', 'admin')->first();
$operator = Role::where('name', 'operator')->first();
$dashboard = Menu::where('name', 'Dashboard')->first();
$master = Menu::where('name', 'Master')->first();
$settings = Menu::where('name', 'Settings')->first();
$dataSettings = Menu::where('name', 'Data Settings')->first();
$data = Menu::where('name', 'Data')->first();
$laporan = Menu::where('name', 'Laporan')->first();
$chat_bedas = Menu::where('name', 'Neng Bedas')->first();
$approval = Menu::where('name', 'Approval')->first();
$tools = Menu::where('name', 'Tools')->first();
// create children menu
$children_menus = [
[
"name" => "Dashboard Pimpinan",
"url" => "dashboard.home",
"icon" => null,
"parent_id" => $dashboard->id,
"sort_order" => 1,
],
[
"name" => "Dashboard PBG",
"url" => "dashboard.pbg",
"icon" => null,
"parent_id" => $dashboard->id,
"sort_order" => 2,
],
[
"name" => "Dashboard Potensi",
"url" => null,
"icon" => null,
"parent_id" => $dashboard->id,
"sort_order" => 3,
],
[
"name" => "PETA",
"url" => "dashboard.maps",
"icon" => null,
"parent_id" => $dashboard->id,
"sort_order" => 4,
],
[
"name" => "Users",
"url" => "users.index",
"icon" => null,
"parent_id" => $master->id,
"sort_order" => 1,
],
[
"name" => "Approval Pejabat",
"url" => "approval-list",
"icon" => null,
"parent_id" => $approval->id,
"sort_order" => 1,
],
[
"name" => "Syncronize",
"url" => "settings.syncronize",
"icon" => null,
"parent_id" => $settings->id,
"sort_order" => 1,
],
[
"name" => "Menu",
"url" => "menus.index",
"icon" => null,
"parent_id" => $settings->id,
"sort_order" => 2,
],
[
"name" => "Role",
"url" => "roles.index",
"icon" => null,
"parent_id" => $settings->id,
"sort_order" => 3,
],
[
"name" => "Setting Dashboard",
"url" => "data-settings.index",
"icon" => null,
"parent_id" => $dataSettings->id,
"sort_order" => 1,
],
[
"name" => "PBG",
"url" => "pbg-task.index",
"icon" => null,
"parent_id" => $data->id,
"sort_order" => 1,
],
[
"name" => "Reklame",
"url" => "web.advertisements.index",
"icon" => null,
"parent_id" => $data->id,
"sort_order" => 2,
],
[
"name" => "Usaha atau Industri",
"url" => "business-industries.index",
"icon" => null,
"parent_id" => $data->id,
"sort_order" => 3,
],
[
"name" => "UMKM",
"url" => "web-umkm.index",
"icon" => null,
"parent_id" => $data->id,
"sort_order" => 4,
],
[
"name" => "Pariwisata",
"url" => "web-tourisms.index",
"icon" => null,
"parent_id" => $data->id,
"sort_order" => 5,
],
[
"name" => "Tata Ruang",
"url" => "web-spatial-plannings.index",
"icon" => null,
"parent_id" => $data->id,
"sort_order" => 6,
],
[
"name" => "PDAM",
"url" => "customers",
"icon" => null,
"parent_id" => $data->id,
"sort_order" => 7,
],
[
"name" => "Google Sheets",
"url" => "google-sheets",
"icon" => null,
"parent_id" => $data->id,
"sort_order" => 8,
],
[
"name" => "TPA TPT",
"url" => "tpa-tpt.index",
"icon" => null,
"parent_id" => $data->id,
"sort_order" => 9,
],
[
"name" => "Lap Pariwisata",
"url" => "tourisms-report.index",
"icon" => null,
"parent_id" => $laporan->id,
"sort_order" => 1,
],
[
"name" => "Lap Pimpinan",
"url" => "bigdata-resumes",
"icon" => null,
"parent_id" => $laporan->id,
"sort_order" => 2,
],
[
"name" => "Rekap Pembayaran",
"url" => "payment-recaps",
"icon" => null,
"parent_id" => $laporan->id,
"sort_order" => 3,
],
[
"name" => "Lap Rekap Data Pembayaran",
"url" => "report-payment-recaps",
"icon" => null,
"parent_id" => $laporan->id,
"sort_order" => 4,
],
[
"name" => "Lap PBG (PTSP)",
"url" => "report-pbg-ptsp",
"icon" => null,
"parent_id" => $laporan->id,
"sort_order" => 5,
],
[
"name" => "Chat",
"url" => "main-chatbot.index",
"icon" => null,
"parent_id" => $chat_bedas->id,
"sort_order" => 1,
],
[
"name" => "Luar Sistem",
"url" => "dashboard.potentials.inside_system",
"icon" => null,
"parent_id" => Menu::where('name', 'Dashboard Potensi')->first()->id,
"sort_order" => 1,
],
[
"name" => "Dalam Sistem",
"url" => "dashboard.potentials.outside_system",
"icon" => null,
"parent_id" => Menu::where('name', 'Dashboard Potensi')->first()->id,
"sort_order" => 2,
],
[
"name" => "Undangan",
"url" => "invitations",
"icon" => null,
"parent_id" => $tools->id,
"sort_order" => 1,
],
];
foreach ($children_menus as $child_menu) {
Menu::firstOrCreate(['name' => $child_menu['name']], $child_menu);
}
$dashboard_pimpinan = Menu::where('name', 'Dashboard Pimpinan')->first();
$dashboard_pbg = Menu::where('name', 'Dashboard PBG')->first();
$users = Menu::where('name', 'Users')->first();
$syncronize = Menu::where('name', 'Syncronize')->first();
$setting_menu = Menu::where('name', 'Menu')->first();
$setting_role = Menu::where('name', 'Role')->first();
$setting_dashboard = Menu::where('name', 'Setting Dashboard')->first();
$setting_pbg = Menu::where('name', 'PBG')->first();
$reklame = Menu::where('name', 'Reklame')->first();
$businessIndustries = Menu::where('name', 'Usaha atau Industri')->first();
$pariwisata = Menu::where('name', 'Pariwisata')->first();
$laporan_pariwisata = Menu::where('name', 'Lap Pariwisata')->first();
$umkm = Menu::where('name', 'UMKM')->first();
$lack_of_potentials = Menu::where('name', 'Dashboard Potensi')->first();
$spatial_plannings = Menu::where('name', 'Tata Ruang')->first();
$pdam = Menu::where('name', 'PDAM')->first();
$peta = Menu::where('name', 'PETA')->first();
$bigdata_resume = Menu::where('name', 'Lap Pimpinan')->first();
$chatbot = Menu::where('name', 'Chat')->first();
$dalam_sistem = Menu::where('name', 'Dalam Sistem')->first();
$luar_sistem = Menu::where('name', 'Luar Sistem')->first();
$google_sheets = Menu::where('name', 'Google Sheets')->first();
$tpa_tpt = Menu::where('name', 'TPA TPT')->first();
$approval_pejabat = Menu::where('name', 'Approval Pejabat')->first();
$intivations = Menu::where('name', 'Undangan')->first();
$payment_recap = Menu::where('name', 'Rekap Pembayaran')->first();
$report_payment_recap = Menu::where('name', 'Lap Rekap Data Pembayaran')->first();
$report_pbg_ptsp = Menu::where('name', 'Lap PBG (PTSP)')->first();
// Superadmin gets all menus
$superadmin->menus()->sync([
// parent
$dashboard->id => ["allow_show" => true, "allow_create" => false, "allow_update" => false, "allow_destroy" => false],
$master->id => ["allow_show" => true, "allow_create" => false, "allow_update" => false, "allow_destroy" => false],
$settings->id => ["allow_show" => true, "allow_create" => false, "allow_update" => false, "allow_destroy" => false],
$dataSettings->id => ["allow_show" => true, "allow_create" => false, "allow_update" => false, "allow_destroy" => false],
$data->id => ["allow_show" => true, "allow_create" => false, "allow_update" => false, "allow_destroy" => false],
$laporan->id => ["allow_show" => true, "allow_create" => false, "allow_update" => false, "allow_destroy" => false],
$chat_bedas->id => ["allow_show" => true, "allow_create" => false, "allow_update" => false, "allow_destroy" => false],
$approval->id => ["allow_show" => true, "allow_create" => false, "allow_update" => false, "allow_destroy" => false],
$tools->id => ["allow_show" => true, "allow_create" => false, "allow_update" => false, "allow_destroy" => false],
// children
$dashboard_pimpinan->id => ["allow_show" => true, "allow_create" => true, "allow_update" => true, "allow_destroy" => true],
$dashboard_pbg->id => ["allow_show" => true, "allow_create" => true, "allow_update" => true, "allow_destroy" => true],
$users->id => ["allow_show" => true, "allow_create" => true, "allow_update" => true, "allow_destroy" => true],
$syncronize->id => ["allow_show" => true, "allow_create" => true, "allow_update" => true, "allow_destroy" => true],
$setting_menu->id => ["allow_show" => true, "allow_create" => true, "allow_update" => true, "allow_destroy" => true],
$setting_role->id => ["allow_show" => true, "allow_create" => true, "allow_update" => true, "allow_destroy" => true],
$setting_dashboard->id => ["allow_show" => true, "allow_create" => true, "allow_update" => true, "allow_destroy" => true],
$setting_pbg->id => ["allow_show" => true, "allow_create" => true, "allow_update" => true, "allow_destroy" => true],
$reklame->id => ["allow_show" => true, "allow_create" => true, "allow_update" => true, "allow_destroy" => true],
$businessIndustries->id => ["allow_show" => true, "allow_create" => true, "allow_update" => true, "allow_destroy" => true],
$pariwisata->id => ["allow_show" => true, "allow_create" => true, "allow_update" => true, "allow_destroy" => true],
$laporan_pariwisata->id => ["allow_show" => true, "allow_create" => true, "allow_update" => true, "allow_destroy" => true],
$umkm->id => ["allow_show" => true, "allow_create" => true, "allow_update" => true, "allow_destroy" => true],
$lack_of_potentials->id => ["allow_show" => true, "allow_create" => true, "allow_update" => true, "allow_destroy" => true],
$spatial_plannings->id => ["allow_show" => true, "allow_create" => true, "allow_update" => true, "allow_destroy" => true],
$pdam->id => ["allow_show" => true, "allow_create" => true, "allow_update" => true, "allow_destroy" => true],
// $peta->id => ["allow_show" => true, "allow_create" => true, "allow_update" => true, "allow_destroy" => true],
$dalam_sistem->id => ["allow_show" => true, "allow_create" => true, "allow_update" => true, "allow_destroy" => true],
$luar_sistem->id => ["allow_show" => true, "allow_create" => true, "allow_update" => true, "allow_destroy" => true],
$bigdata_resume->id => ["allow_show" => true, "allow_create" => true, "allow_update" => true, "allow_destroy" => true],
$chatbot->id => ["allow_show" => true, "allow_create" => true, "allow_update" => true, "allow_destroy" => true],
$google_sheets->id => ["allow_show" => true, "allow_create" => true, "allow_update" => true, "allow_destroy" => true],
$tpa_tpt->id => ["allow_show" => true, "allow_create" => true, "allow_update" => true, "allow_destroy" => true],
$approval_pejabat->id => ["allow_show" => true, "allow_create" => true, "allow_update" => true, "allow_destroy" => true],
$intivations->id => ["allow_show" => true, "allow_create" => true, "allow_update" => true, "allow_destroy" => true],
$payment_recap->id => ["allow_show" => true, "allow_create" => true, "allow_update" => true, "allow_destroy" => true],
$report_payment_recap->id => ["allow_show" => true, "allow_create" => true, "allow_update" => true, "allow_destroy" => true],
$report_pbg_ptsp->id => ["allow_show" => true, "allow_create" => true, "allow_update" => true, "allow_destroy" => true],
]);
// Admin gets limited menus
$admin->menus()->sync([
$dashboard->id => ["allow_show" => true, "allow_create" => true, "allow_update" => true, "allow_destroy" => true],
$master->id => ["allow_show" => true, "allow_create" => true, "allow_update" => true, "allow_destroy" => true],
$settings->id => ["allow_show" => true, "allow_create" => true, "allow_update" => true, "allow_destroy" => true],
]);
// Operator gets only basic menus with full permissions
$operator->menus()->sync([
$dashboard->id => ["allow_show" => true, "allow_create" => true, "allow_update" => true, "allow_destroy" => true],
$data->id => ["allow_show" => true, "allow_create" => true, "allow_update" => true, "allow_destroy" => true],
]);
// Attach User to role super admin
User::findOrFail(1)->roles()->sync([$superadmin->id]);
User::findOrFail(1)->roles()->sync([$roles['superadmin']->id]);
}
}

View File

@@ -0,0 +1,41 @@
@extends('layouts.base', ['subtitle' => 'Service Unavailable - 503'])
@section('body-attribuet')
class="authentication-bg"
@endsection
@section('content')
<div class="account-pages pt-2 pt-sm-5 pb-4 pb-sm-5">
<div class="container">
<div class="row justify-content-center">
<div class="col-xl-6">
<div class="card auth-card">
<div class="card-body p-0">
<div class="row align-items-center g-0">
<div class="col">
<div class="p-4">
<div class="mx-auto mb-4 text-center">
<div class="mx-auto text-center auth-logo">
<!-- Logo placeholder -->
</div>
<img src="/images/simbg-dputr.png" alt="auth" height="250" class="mt-5 mb-3" />
<h2 class="fs-22 lh-base">Service Unavailable!</h2>
<p class="text-muted mt-1 mb-4">Our site is currently undergoing scheduled maintenance.<br /> Please check back later.</p>
<div class="text-center">
<a href="{{ route('home') }}" class="btn btn-warning">Back to Home</a>
</div>
</div>
</div>
</div> <!-- end col -->
</div> <!-- end row -->
</div> <!-- end card-body -->
</div> <!-- end card -->
</div> <!-- end col -->
</div> <!-- end row -->
</div>
</div>
@endsection

View File

@@ -4,8 +4,22 @@
@include('layouts.partials/page-title', ['title' => 'Home', 'subtitle' => 'Home'])
@endsection
<div className="container d-flex justify-content-center align-items-center min-vh-100 bg-light">
<div className="col-lg-8 col-md-10 col-sm-12">
<div className="card shadow-lg rounded-3 p-4">
<div className="card-body text-center">
<h1 className="card-title text-primary">Selamat Datang di SIBEDAS PBG!</h1>
<p className="card-text text-secondary mt-3">
Sistem Informasi Berbasis Data (SIBEDAS) adalah sebuah sistem yang dirancang untuk mengelola dan mengolah data pegawai secara efektif dan efisien.
Dengan teknologi modern, SIBEDAS memungkinkan pegawai untuk mendata, melihat, dan memanipulasi informasi pegawai dengan mudah.
</p>
<p className="card-text text-secondary">
PBG (Pegawai Badan Kepegawaian) merupakan unit kerja yang bertanggung jawab atas administrasi kepegawaian.
Melalui SIBEDAS PBG, proses manajemen data pegawai menjadi lebih terstruktur, transparan, dan mudah diakses kapan saja.
</p>
</div>
</div>
</div>
</div>
@section('scripts')
@vite(['resources/js/pages/dashboard.js'])
@endsection

View File

@@ -20,7 +20,7 @@
missing in the digital wilderness.</p>
<div class="text-center">
<a href="{{ route('any', 'index') }}" class="btn btn-success">Back to Home</a>
<a href="{{ route('home', 'index') }}" class="btn btn-success">Back to Home</a>
</div>
</div>
</div>

View File

@@ -32,7 +32,7 @@ class="authentication-bg"
<p class="text-muted mt-1 mb-4">The page you're trying to reach seems to have gone <br /> missing in the digital wilderness.</p>
<div class="text-center">
<a href="{{ route('dashboard.home') }}" class="btn btn-danger">Back to Home</a>
<a href="{{ route('home') }}" class="btn btn-danger">Back to Home</a>
</div>
</div>
</div>

View File

@@ -37,7 +37,7 @@ require __DIR__ . '/auth.php';
Route::group(['middleware' => 'auth'], function(){
Route::get('', [BigDataController::class, 'index'])->name('any');
Route::get('/home', [HomeController::class, 'index']);
Route::get('/home', [HomeController::class, 'index'])->name('home');
//dashboards
Route::group(['prefix' => '/dashboards'], function(){