HEX
Server: nginx/1.28.3
System: Linux lightweb-s1 5.15.0-173-generic #183-Ubuntu SMP Fri Mar 6 13:29:34 UTC 2026 x86_64
User: drdrivek-71 (1047)
PHP: 8.3.30
Disabled: NONE
Upload Files
File: /home/eslinced-103/brise-edu.or.kr/AmuzPackages/Cms2/NovaMainMenu.php
<?php

namespace AmuzPackages\Cms2;

use  App\Amuz\NovaTools\NovaMenuInterface;
use App\Nova\Central\Admin;
use App\Nova\Central\Domain;
use App\Nova\Central\SubscriptionCancelation;
use App\Nova\Tenant\Post;
use Illuminate\Http\Request;
use Laravel\Nova\Menu\Menu;
use Laravel\Nova\Menu\MenuGroup;
use Laravel\Nova\Menu\MenuItem;
use Laravel\Nova\Menu\MenuSection;
use Vyuldashev\NovaPermission\NovaPermissionTool;

class NovaMainMenu implements NovaMenuInterface {

    function makeCentralNovaMainMenu(Request $request, Menu $menu, NovaPermissionTool $permissionTool): void
    {
        $menu->append($this->getPagesMenu());

        $menu->append(MenuSection::make(__('User & Roles'), [
            MenuGroup::make(__('User'), [
                MenuItem::resource(Admin::class),
                MenuItem::resource(config('amuz.central_user_resource')),
            ]),
            MenuGroup::make(__('Roles & Permissions'), [
                MenuItem::resource($permissionTool->roleResource)->canSee(function ($request) {
                    return $request->user()->hasRole('SuperAdmin');
                }),
                MenuItem::resource($permissionTool->permissionResource)->canSee(function ($request) {
                    return $request->user()->hasRole('SuperAdmin');
                }),
            ]),
        ])->icon('user')->collapsedByDefault());

        if(config('amuz.use_multi_site',false) === true){
            $menu->prepend(MenuSection::make(__('Multi-Site'), [
                MenuGroup::make(__('Tenants'), [
                    MenuItem::resource(config('amuz.tenant_resource')),
                    MenuItem::resource(Domain::class),
                ]),
                MenuGroup::make(__('Subscriptions'), [
                    MenuItem::resource(SubscriptionCancelation::class),
                ]),
            ])->icon('desktop-computer')->collapsable());
        }
//            ->prepend(MenuItem::link('My Profile', '/resources/users/'.$request->user()->getKey()));
    }

    function makeTenancyNovaMainMenu(Request $request, Menu $menu, NovaPermissionTool $permissionTool): void
    {
        $menu->append($this->getPagesMenu());

        if(config('amuz.use_tenant_preset',false) === true){
            $menu->append(
                MenuSection::make(__('Contents'), [
                    MenuItem::resource(Post::class),
                ])->icon('document-text')->collapsable()
            );
        }

        $menu->append(
            MenuSection::make(__('User & Roles'), [
                MenuGroup::make('User', [
                    MenuItem::resource(config('amuz.tenant_user_resource')),
                ]),
                MenuGroup::make(__('Roles & Permissions'), [
                    MenuItem::resource($permissionTool->roleResource),
                    MenuItem::resource($permissionTool->permissionResource),
                ]),
            ])->icon('user')->collapsable(),
        );
    }

    private function getPagesMenu(): MenuSection
    {
        return MenuSection::make(__('Manage Documents'),[
            MenuItem::resource(config('amuz.static_page_resource'))
        ])
            ->icon('newspaper')
            ->collapsable();
    }

    function makeAdvancedMenu(Request $request, MenuSection $advancedSection): void
    {
//        $advancedSection->items->prepend(MenuItem::externalLink('Naver', 'http://naver.com'));
    }
}