protected function checkRequest()
{
if (strtoupper($_SERVER['REQUEST_METHOD']) === 'POST') {
/* @var $_config CKFinder_Connector_Core_Config */
$_config =& CKFinder_Connector_Core_Factory::getInstance("Core_Config");
if ($_config->getEnableCsrfProtection() && !$this->checkCsrfToken()) {
$this->_errorHandler->throwError(CKFINDER_CONNECTOR_ERROR_INVALID_REQUEST);
}
}
if (preg_match(CKFINDER_REGEX_INVALID_PATH, $this->_currentFolder->getClientPath())) {
$this->_errorHandler->throwError(CKFINDER_CONNECTOR_ERROR_INVALID_NAME);
}
$_resourceTypeConfig = $this->_currentFolder->getResourceTypeConfig();
if (is_null($_resourceTypeConfig)) {
$this->_errorHandler->throwError(CKFINDER_CONNECTOR_ERROR_INVALID_TYPE);
}
$_clientPath = $this->_currentFolder->getClientPath();
$_clientPathParts = explode("/", trim($_clientPath, "/"));
if ($_clientPathParts) {
foreach ($_clientPathParts as $_part) {
if ($_resourceTypeConfig->checkIsHiddenFolder($_part)) {
$this->_errorHandler->throwError(CKFINDER_CONNECTOR_ERROR_INVALID_REQUEST);
}
}
}
if (!is_dir($this->_currentFolder->getServerPath())) {
if ($_clientPath == "/") {
if (!CKFinder_Connector_Utils_FileSystem::createDirectoryRecursively($this->_currentFolder->getServerPath())) {
/**
* @todo handle error
*/
}
} else {
$this->_errorHandler->throwError(CKFINDER_CONNECTOR_ERROR_FOLDER_NOT_FOUND);
}
}
}