@php $user = auth()->user(); if ($user) { $user->load('roles'); $names = []; if (isset($user->roles)) { foreach ($user->roles as $r) { $names[] = strtolower($r->name); } } $roleAttr = strtolower($user->role ?? ''); if ($roleAttr) { $names[] = $roleAttr; } $names = array_unique($names); $rank = ['superadmin'=>4,'admin'=>3,'creator'=>2,'user'=>1,'guest'=>0]; $best = null; $bestScore = -1; foreach ($names as $n) { $s = $rank[$n] ?? -1; if ($s > $bestScore) { $best = $n; $bestScore = $s; } } $topRoleLabel = $best ? ucfirst($best) : 'User'; } else { $topRoleLabel = null; } @endphp
@auth
@php $photoPath = ($user && $user->profile && $user->profile->foto) ? $user->profile->foto : null; $avatarSrc = $photoPath ? asset('assets/images/profilefoto/' . $photoPath) : asset('assets/images/profilefoto/default-profile.png'); $avatarAlt = $photoPath ? 'User Avatar' : 'Default Avatar'; @endphp {{ $avatarAlt }}
{{ auth()->user()->name }}
@if(!empty($topRoleLabel))
{{ $topRoleLabel }}
@endif
@endauth
    @if($user)
  • MENU UTAMA

  • Home

  • Aktivitas Saya

  • @endif @php // Pastikan roles ter-load if ($user) { // Force reload roles dari database $user->load('roles'); // Jika masih kosong, coba query langsung if ($user->roles->isEmpty()) { $roles = \Spatie\Permission\Models\Role::whereHas('users', function($q) use ($user) { $q->where('model_id', $user->id); })->get(); if ($roles->isNotEmpty()) { $user->setRelation('roles', $roles); } } } // Check superadmin - prioritas: cek langsung dari database $isSuperAdmin = false; if ($user) { // Method 1: Coba method isSuperAdmin() terlebih dahulu (paling reliable) if (method_exists($user, 'isSuperAdmin')) { try { $isSuperAdmin = $user->isSuperAdmin(); } catch (\Exception $e) { // Ignore } } // Method 2: Cek dari roles collection yang sudah di-load if (!$isSuperAdmin) { $isSuperAdmin = $user->roles->contains(function($role) { return $role->name === 'superadmin'; }); } // Method 3: Jika masih false, cek langsung dari database if (!$isSuperAdmin) { $hasSuperAdminRole = \DB::table('model_has_roles') ->join('roles', 'model_has_roles.role_id', '=', 'roles.id') ->where('model_has_roles.model_id', $user->id) ->where('model_has_roles.model_type', 'App\Models\User') ->where('roles.name', 'superadmin') ->exists(); $isSuperAdmin = $hasSuperAdminRole; } // Method 4: Cek dari role attribute sebagai fallback if (!$isSuperAdmin) { $roleAttr = strtolower($user->role ?? ''); $isSuperAdmin = ($roleAttr === 'superadmin'); } } // Check admin (termasuk superadmin) $isAdmin = false; if ($user) { // Method 1: Coba method isAdmin() terlebih dahulu (paling reliable) if (method_exists($user, 'isAdmin')) { try { $isAdmin = $user->isAdmin(); } catch (\Exception $e) { // Ignore } } // Method 2: Coba method hasAnyRole if (!$isAdmin && method_exists($user, 'hasAnyRole')) { try { $isAdmin = $user->hasAnyRole(['admin', 'superadmin']); } catch (\Exception $e) { // Ignore } } // Method 3: Cek dari roles collection if (!$isAdmin) { $isAdmin = $user->roles->whereIn('name', ['admin', 'superadmin'])->isNotEmpty(); } // Method 4: Jika masih false, cek langsung dari database if (!$isAdmin) { $hasAdminRole = \DB::table('model_has_roles') ->join('roles', 'model_has_roles.role_id', '=', 'roles.id') ->where('model_has_roles.model_id', $user->id) ->where('model_has_roles.model_type', 'App\Models\User') ->whereIn('roles.name', ['admin', 'superadmin']) ->exists(); $isAdmin = $hasAdminRole; } // Method 5: Cek dari role attribute sebagai fallback if (!$isAdmin) { $roleAttr = strtolower($user->role ?? ''); $isAdmin = in_array($roleAttr, ['admin', 'superadmin']); } } // Check creator $isCreator = false; if ($user) { $isCreator = $user->roles->contains(function($role) { return $role->name === 'creator'; }); if (!$isCreator && method_exists($user, 'hasRole')) { try { $isCreator = $user->hasRole('creator'); } catch (\Exception $e) { // Ignore } } } // Superadmin harus melihat SEMUA menu $showAdminMenu = $isSuperAdmin || $isAdmin || $isCreator; @endphp @if($showAdminMenu)
  • Dashboard

  • @endif @if($showAdminMenu)
  • {{ $isCreator && !$isSuperAdmin && !$isAdmin ? 'CREATOR AREA' : 'ADMIN AREA' }}

  • Aktivitas

  • @endif @if($isSuperAdmin || $isAdmin)
  • Berita

  • Mitra

  • Pengurus

  • Manajemen Keanggotaan

    @if($isSuperAdmin)

    Manajemen Kartu Anggota

    @endif
  • Kategori

  • @endif @if($isSuperAdmin || $isAdmin)
  • MANAJEMEN

  • Manajemen User

  • Manajemen Pembayaran

  • @if($isSuperAdmin)
  • Aturan Keuangan

  • @endif @if($isSuperAdmin)
  • Maintenance Mode

  • @endif @endif
  • Profil

  • @csrf