$controller_details = $this->make_controller_details( $router_data['controller'], $router_data['section'], $router_data['module'] ); // Try to load the controller! try { $req_controller = $this->load_controller( $controller_details ); $cont_output = $req_controller->$controller_details['section'](); } catch ( ControllerNoACL $e ) { // No ACL Rule found } catch { ControllerNoPermission $e ) { // No permission! Change module to permission module and try again }