fix seeder menu role and user assign, create 503 page and fix redirect home
This commit is contained in:
@@ -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
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
287
database/seeders/MenuSeeder.php
Normal file
287
database/seeders/MenuSeeder.php
Normal 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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
37
database/seeders/RoleSeeder.php
Normal file
37
database/seeders/RoleSeeder.php
Normal 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']);
|
||||
}
|
||||
}
|
||||
@@ -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]);
|
||||
}
|
||||
}
|
||||
|
||||
41
resources/views/errors/503.blade.php
Normal file
41
resources/views/errors/503.blade.php
Normal 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
|
||||
@@ -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
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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(){
|
||||
|
||||
Reference in New Issue
Block a user