• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/classes/general/checklist.php
  • Класс: CAutoCheck
  • Вызов: CAutoCheck::CheckDBPassword
static function CheckDBPassword()
{
	$err = 0;
	$arMessage = "";
	$sign = ",.#!*%$:-^@{}[]()'"-+=<>?`&;";
	$dit = "1234567890";
	$have_sign = false;
	$have_dit = false;
	$arResult["STATUS"] = true;

	$connection = MainApplication::getInstance()->getConnection();
	$password = $connection->getPassword();

	if ($password == '')
	{
		$arMessage.=GetMessage("CL_EMPTY_PASS")."n";
	}
	else
	{
		if ($password == mb_strtolower($password))
			$arMessage .= (++$err).". ".GetMessage("CL_SAME_REGISTER")."n";

		for($j=0, $c = mb_strlen($password); $j<$c; $j++)
		{
			if (mb_strpos($sign, $password[$j]) !== false)
				$have_sign = true;
			if (mb_strpos($dit, $password[$j]) !== false)
				$have_dit = true;
			if ($have_dit == true && $have_sign == true)
				break;
		}

		if (!$have_dit)
			$arMessage .= (++$err).". ".GetMessage("CL_HAVE_NO_DIT")."n";
		if (!$have_sign)
			$arMessage .= (++$err).". ".GetMessage("CL_HAVE_NO_SIGN")."n";
		if (mb_strlen($password) < 8)
			$arMessage .= (++$err).". ".GetMessage("CL_LEN_MIN")."n";
	}
	if($arMessage)
	{
		$arResult["STATUS"] = false;
		$arResult["MESSAGE"]=array(
			"PREVIEW" => GetMessage("CL_ERROR_FOUND_SHORT"),
			"DETAIL" => $arMessage
		);
	}
	else
		$arResult["MESSAGE"]=array(
			"PREVIEW" => GetMessage("CL_NO_ERRORS"),
		);
	return $arResult;
}