- Модуль: clouds
- Путь к файлу: ~/bitrix/modules/clouds/classes/general/storage_bucket.php
- Класс: CCloudStorageBucket
- Вызов: CCloudStorageBucket::CheckFields
function CheckFields(&$arFields, $ID)
{
global $APPLICATION;
$aMsg = array();
if(array_key_exists("ACTIVE", $arFields))
$arFields["ACTIVE"] = $arFields["ACTIVE"] === "N"? "N": "Y";
if(array_key_exists("READ_ONLY", $arFields))
$arFields["READ_ONLY"] = $arFields["READ_ONLY"] === "Y"? "Y": "N";
$arServices = CCloudStorage::GetServiceList();
if(isset($arFields["SERVICE_ID"]))
{
if(!array_key_exists($arFields["SERVICE_ID"], $arServices))
$aMsg[] = array("id" => "SERVICE_ID", "text" => GetMessage("CLO_STORAGE_WRONG_SERVICE"));
}
if(isset($arFields["BUCKET"]))
{
$arFields["BUCKET"] = trim($arFields["BUCKET"]);
$bBadLength = false;
if(mb_strpos($arFields["BUCKET"], ".") !== false)
{
$arName = explode(".", $arFields["BUCKET"]);
$bBadLength = false;
foreach($arName as $str)
if(mb_strlen($str) < 2 || mb_strlen($str) > 63)
$bBadLength = true;
}
if($arFields["BUCKET"] == '')
$aMsg[] = array("id" => "BUCKET", "text" => GetMessage("CLO_STORAGE_EMPTY_BUCKET"));
if(preg_match("/[^a-z0-9._-]/", $arFields["BUCKET"]) > 0)
$aMsg[] = array("id" => "BUCKET", "text" => GetMessage("CLO_STORAGE_BAD_BUCKET_NAME"));
if(mb_strlen($arFields["BUCKET"]) < 2 || mb_strlen($arFields["BUCKET"]) > 63)
$aMsg[] = array("id" => "BUCKET", "text" => GetMessage("CLO_STORAGE_WRONG_BUCKET_NAME_LENGTH"));
if($bBadLength)
$aMsg[] = array("id" => "BUCKET", "text" => GetMessage("CLO_STORAGE_WRONG_BUCKET_NAME_LENGTH2"));
if(!preg_match("/^[a-z0-9].*[a-z0-9]$/", $arFields["BUCKET"]))
$aMsg[] = array("id" => "BUCKET", "text" => GetMessage("CLO_STORAGE_BAD_BUCKET_NAME2"));
if(preg_match("/(-\.|\.-)/", $arFields["BUCKET"]) > 0)
$aMsg[] = array("id" => "BUCKET", "text" => GetMessage("CLO_STORAGE_BAD_BUCKET_NAME3"));
if($arFields["BUCKET"] <> '')
{
$rsBucket = self::GetList(array(), array(
"=SERVICE_ID" => $arFields["SERVICE_ID"],
"=BUCKET" => $arFields["BUCKET"],
));
$arBucket = $rsBucket->Fetch();
if(is_array($arBucket) && $arBucket["ID"] != $ID)
$aMsg[] = array("id" => "BUCKET", "text" => GetMessage("CLO_STORAGE_BUCKET_ALREADY_EXISTS"));
}
}
if(array_key_exists("FAILOVER_ACTIVE", $arFields))
{
$arFields["FAILOVER_ACTIVE"] = $arFields["FAILOVER_ACTIVE"] === "Y"? "Y": "N";
}
if(isset($arFields["FAILOVER_BUCKET_ID"]) && $arFields["FAILOVER_BUCKET_ID"] == $ID)
{
unset($arFields["FAILOVER_BUCKET_ID"]);
}
if(array_key_exists("FAILOVER_COPY", $arFields))
{
$arFields["FAILOVER_COPY"] = $arFields["FAILOVER_COPY"] === "Y"? "Y": "N";
}
if(array_key_exists("FAILOVER_DELETE", $arFields))
{
$arFields["FAILOVER_DELETE"] = $arFields["FAILOVER_DELETE"] === "Y"? "Y": "N";
}
if(array_key_exists("FAILOVER_DELETE_DELAY", $arFields))
{
$arFields["FAILOVER_DELETE_DELAY"] = (int)$arFields["FAILOVER_DELETE_DELAY"];
}
if(!empty($aMsg))
{
$e = new CAdminException($aMsg);
$APPLICATION->ThrowException($e);
return false;
}
return true;
}