File: /www/wwwroot/erp.nhatnamsst.com/domains/Admin/Http/Middleware/AccessRouteNameMiddleware.php
<?php
namespace Domains\Admin\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Symfony\Component\HttpFoundation\Response;
use Domains\Core\Enums\AdminRole;
class AccessRouteNameMiddleware
{
public function handle(Request $request, Closure $next): Response
{
if (Auth::guard('admin')->check())
{
$admin = get_auth_admin();
$routeName = $request->route()->getName();
$routeRoleAccess = config('cms.route_role_access', []);
if (isset($routeRoleAccess[$routeName])) {
$allowedRoles = $routeRoleAccess[$routeName];
if ($admin->checkRouteNameAccessOrSuperAdmin($routeName)) {
return $next($request);
}
if ($admin->role && in_array($admin->role, $allowedRoles)) {
return $next($request);
}
return abort(403);
}
if($admin->checkRouteNameAccessOrSuperAdmin($routeName))
{
return $next($request);
}
}
return abort(403);
}
}