HEX
Server: nginx/1.24.0
System: Linux localhost 5.15.0-46-generic #49-Ubuntu SMP Thu Aug 4 18:03:25 UTC 2022 x86_64
User: www (1000)
PHP: 8.3.27
Disabled: passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
Upload Files
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);
    }
}