{{ org_name() }}
@if(auth()->check())
{{ __('Role') }}: {{ optional(auth()->user())->getRoleNames()->join(', ') ?: __('-') }}
@endif
@php $authUser = auth()->user(); $isAdmin = $authUser && method_exists($authUser, 'hasRole') && $authUser->hasRole('admin'); // Group-level permission checks (show entire group only if user can any child) $canUserManagement = $isAdmin || ($authUser && ( $authUser->can('user.view') || $authUser->can('users.view') || $authUser->can('users.create') || $authUser->can('roles.view') || $authUser->can('departments.view') || $authUser->can('sections.view') )); $canEmployees = $isAdmin || ($authUser && ( $authUser->can('employees.view') || $authUser->can('employees.create') || $authUser->can('contracts.view') || $authUser->can('documents.view') )); $canLeaveManagement = $isAdmin || ($authUser && ( $authUser->can('leaves.view') || $authUser->can('leave-types.view') || $authUser->can('leaves.create') )); $canHRActions = $isAdmin || ($authUser && ( $authUser->can('promotions.view') || $authUser->can('transfers.view') || $authUser->can('resignations.view') || $authUser->can('terminations.view') )); $canLoans = $isAdmin || ($authUser && $authUser->can('loans.view')); $canPayroll = $isAdmin || ($authUser && ( $authUser->can('payroll.view') || $authUser->can('payroll.create') || $authUser->can('payroll.export') || $authUser->can('payroll.settings.view') || $authUser->can('salary-levels.view') || $authUser->can('banks.view') || $authUser->can('allowances.view') || $authUser->can('deductions.view') || $authUser->can('paye-rates.view') )); $canReports = $isAdmin || ($authUser && ($authUser->can('reports.view') || $authUser->can('reports.payroll'))); $canNotifications = $isAdmin || ($authUser && $authUser->can('notifications.view')); $canSettings = $isAdmin || ($authUser && ($authUser->can('settings.view') || $authUser->can('support.view'))); @endphp {{-- Dashboard (single) --}}
{{ __('Dashboard') }}
{{-- Collapsible group component template: label, icon, items --}} @php // small helper to render chevron @endphp {{-- Management --}} @if($canUserManagement)
@if($isAdmin || optional(auth()->user())->can('user.view')) {{ __('Users') }} @endif @if($isAdmin || optional(auth()->user())->can('user.view')) {{ __('Roles & Permissions') }} @endif @if($isAdmin || optional(auth()->user())->can('departments.view')) {{ __('Departments') }} @endif @if($isAdmin || optional(auth()->user())->can('sections.view')) {{ __('Sections') }} @endif
@endif {{-- Employees --}} @if($canEmployees)
@if($isAdmin || optional(auth()->user())->can('user.view')) {{ __('Employee List') }} @endif @if($isAdmin || optional(auth()->user())->can('user.create')) {{ __('Add Employee') }} @endif @if($isAdmin || optional(auth()->user())->can('contracts.view')) {{ __('Contracts') }} @endif @if($isAdmin || optional(auth()->user())->can('documents.view')) {{ __('Documents') }} @endif
@endif {{-- Leave Management --}} @if($canLeaveManagement)
@if($isAdmin || optional(auth()->user())->can('leaves.view')) {{ __('Leave Requests') }} @endif @if($isAdmin || optional(auth()->user())->can('leaves.create')) {{ __('Apply Leave') }} @endif @if($isAdmin || optional(auth()->user())->can('leave-types.view')) {{ __('Leave Types') }} @endif
@endif {{-- HR Actions --}} @if($canHRActions)
@if($isAdmin || optional(auth()->user())->can('promotions.view')) {{ __('Promotions') }} @endif @if($isAdmin || optional(auth()->user())->can('transfers.view')) {{ __('Transfers') }} @endif @if($isAdmin || optional(auth()->user())->can('resignations.view')) {{ __('Resignations') }} @endif @if($isAdmin || optional(auth()->user())->can('terminations.view')) {{ __('Terminations') }} @endif
@endif {{-- Loans (top-level menu) --}} @if($canLoans) {{ __('Loans') }} @endif {{-- Finance & Payroll --}} @if($canPayroll)
{{ __('Payroll') }}
@if($isAdmin || optional(auth()->user())->can('payroll.view')) {{ __('Process Payroll') }} {{ __('Payroll Summary') }} {{ __('Payroll History') }} @endif
{{ __('Configuration') }}
@if($isAdmin || optional(auth()->user())->can('salary-levels.view')) {{ __('Salary Levels') }} @endif @if($isAdmin || optional(auth()->user())->can('banks.view')) {{ __('Banks') }} @endif @if($isAdmin || optional(auth()->user())->can('allowances.view')) {{ __('Allowances') }} @endif @if($isAdmin || optional(auth()->user())->can('deductions.view')) {{ __('Deductions') }} @endif @if($isAdmin || optional(auth()->user())->can('paye-rates.view')) {{ __('PAYE Tax Rates') }} @endif {{-- Social Funds moved to Configuration --}} @if($isAdmin || optional(auth()->user())->can('payroll.view')) {{ __('Social Funds') }} @endif {{-- Loans removed from here — now a top-level menu item --}}
@endif {{-- Notifications --}} @if($canNotifications) {{ __('Notifications') }} @if(auth()->user()->unreadNotifications()->count() > 0) {{ auth()->user()->unreadNotifications()->count() }} @endif @endif {{-- Reports --}} @if($canReports)
@if($isAdmin || optional(auth()->user())->can('reports.view')) Dashboard Employees {{ __('Payroll') }} Leaves {{ __('Loans') }} Contracts {{ __('Banks Report') }} {{ __('Social Funds Report') }} {{ __('PAYE Report') }} @endif
@endif {{-- Settings & Reports --}} @if($canSettings)
@if($isAdmin || optional(auth()->user())->can('settings.view')) {{ __('General Settings') }} @endif @if($isAdmin || optional(auth()->user())->can('reports.view')) @endif @if($isAdmin || optional(auth()->user())->can('notifications.view')) @endif @if($isAdmin || optional(auth()->user())->can('support.view')) {{ __('Support') }} @endif
@endif