@extends('layouts.app')
@section('title', $scan->site_name ?? 'Partage')
@section('header', ($scan->site_name ?? $scan->serveur ?? '') . ' — Détail des permissions')
@push('styles')
@endpush
@section('content')
@php
$statutLabels = ['pending' => ['En attente…', 'text-yellow-600'], 'running' => ['Scan en cours…', 'text-blue-600'], 'stopped' => ['Arrêté (partiel)', 'text-orange-600'], 'failed' => ['Échec', 'text-red-600'], 'completed' => ['Terminé', 'text-green-600']];
$label = $statutLabels[$scan->statut] ?? ['?', 'text-gray-400'];
$detailRoute = 'admin.permissions.' . ($scan->site_name ? 'sharepoint' : 'partage') . '.detail';
@endphp
@if($scan->statut === 'failed' && $scan->erreurs)
Erreur : {{ is_array($scan->erreurs) ? implode('; ', $scan->erreurs) : $scan->erreurs }}
@endif
@if($dossier !== '')
@php
$uniques = $acl->unique(fn($e) => $e->principal . '|' . $e->droits . '|' . $e->est_herite);
$nbGroupes = $uniques->filter(fn($e) => str_starts_with($e->principal, 'SECU-'))->count();
$nbDirects = $uniques->filter(fn($e) => !str_starts_with($e->principal, 'SECU-') && !$e->est_herite)->count();
$nbHerites = $uniques->filter(fn($e) => $e->est_herite)->count();
$parDroit = $uniques->groupBy(fn($e) => \App\Helpers\AclDroits::niveau((string) $e->droits))
->map->count();
$niveauCouleurs = ['full' => 'bg-red-100 text-red-700', 'modify' => 'bg-amber-100 text-amber-700', 'exec' => 'bg-sky-100 text-sky-700', 'read' => 'bg-emerald-100 text-emerald-700'];
$niveauLibelles = ['full' => 'Contrôle total', 'modify' => 'Modification', 'exec' => 'Lecture & exécution', 'read' => 'Lecture'];
@endphp
Permissions {{ $acl->contains('est_fichier', true) ? 'du fichier' : 'du dossier' }} « {{ $dossier }} »
{{ $nbGroupes }} groupe(s)
{{ $nbDirects }} utilisateur(s) direct(s)
{{ $nbHerites }} hérité(s)
@foreach(['full', 'modify', 'exec', 'read'] as $nv)
@if(($parDroit[$nv] ?? 0) > 0)
{{ $niveauLibelles[$nv] }} : {{ $parDroit[$nv] }}
@endif
@endforeach
@include('permissions._acl_list', ['acl' => $acl, 'filtre' => true])
@endif
@if($dossier !== '' && $acl->isNotEmpty())
@endif
Sous-dossiers
@include('permissions._folder_list', [
'items' => $folders['items'],
'total' => $folders['total'],
'page' => $folders['page'],
'perPage' => $folders['perPage'],
'dossier' => $folders['dossier'],
'detailRoute' => $detailRoute,
'scanId' => $scan->id,
])
@if(in_array($scan->statut, ['pending', 'running']))
@endif
@endsection