'; var_dump($this->validateControllerAccess()); echo ''; } public function validateControllerAccess(){ $request = \Config\Services::request(); $uri = $uri = new \CodeIgniter\HTTP\URI('https://sk-jjo.imnavajas.es/envioslogistica/logistica'); $language = \Config\Services::language(); $language->setLocale(session()->lang); $getWhiteList = $this->whiteListController(); foreach ($getWhiteList as $item){ if(strtolower($item) == $uri->getSegment(1)){ return true; } } $getRules = json_decode(session()->get('rules')??'[]'); foreach ($this->whiteListMethod() as $item){ if(strtolower($item) == $uri->getSegment(2)){ return true; } } foreach ($getRules as $key=>$value){ if($key=='Digitalizacion') { echo 'Hola'; } if(strtolower($key) == $uri->getSegment(1)){ if($uri->getTotalSegments() <= 1){ return true; } foreach ($value as $item){ if(strtolower($item) == $uri->getSegment(2)){ return true; } } } else{ foreach($this->controllerFolderWhiteList() as $folder){ if(strtolower($folder) == $uri->getSegment(1)){ if(strtolower($key) == $uri->getSegment(2)){ if($uri->getTotalSegments() <= 2){ return true; } foreach ($value as $item){ if(strtolower($item) == $uri->getSegment(3)){ return true; } } } } } } } return false; } public function whiteListController(){ return [ '', 'BaseController', 'Home', 'Login', 'Oauth', 'Language', 'Api', 'Cron', 'lang', 'Ajax', 'Integration', 'Migrate', 'Test', ]; } public function whiteListMethod(){ return [ 'initController', '__construct', 'validateControllerAccess', 'whiteListController', 'whiteListMethod' ]; } public function controllerFolderWhiteList(){ return [ 'Catalogo', 'Clientes', 'Configuracion', 'Digitalizacion', 'Facturacion', 'Informes', 'EnviosLogistica', 'Pedidos', 'Presupuestos', 'Produccion', 'Proveedores', 'Tarifas', 'Usuarios', ]; } }