24 lines
710 B
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);
|
|
}
|
|
}
|