CaiWuXiTong/app/Http/Middleware/EnsureBusinessPageAccess.php

24 lines
710 B
PHP

<?php
namespace App\Http\Middleware;
use App\Utilities\SidebarPermissions;
use Closure;
use Illuminate\Http\Request;
class EnsureBusinessPageAccess
{
public function handle(Request $request, Closure $next, string $section, string $page): mixed
{
$sectionConfig = collect(SidebarPermissions::navigationFor(user()))->firstWhere('slug', $section);
$pages = collect($sectionConfig['pages'] ?? [])->flatMap(static fn (array $configuredPage): array => [
$configuredPage,
...($configuredPage['children'] ?? []),
]);
abort_unless($pages->contains('slug', $page), 403, '当前账号没有该页面权限。');
return $next($request);
}
}