• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/classes/general/user.php
  • Класс: CAllUser
  • Вызов: CAllUser::UpdateDigest
static function UpdateDigest($ID, $pass)
{
	global $DB;
	$ID = intval($ID);

	$res = $DB->Query("
		SELECT U.LOGIN, UD.DIGEST_HA1
		FROM b_user U LEFT JOIN b_user_digest UD on UD.USER_ID=U.ID
		WHERE U.ID=" . $ID
	);
	if ($arRes = $res->Fetch())
	{
		if (defined('BX_HTTP_AUTH_REALM'))
		{
			$realm = BX_HTTP_AUTH_REALM;
		}
		else
		{
			$realm = "Bitrix Site Manager";
		}

		$digest = md5($arRes["LOGIN"] . ':' . $realm . ':' . $pass);

		if ($arRes["DIGEST_HA1"] == '')
		{
			//new digest
			$DB->Query("insert into b_user_digest (user_id, digest_ha1) values('" . $ID . "', '" . $DB->ForSQL($digest) . "')");
		}
		else
		{
			//update digest (login, password or realm were changed)
			if ($arRes["DIGEST_HA1"] !== $digest)
			{
				$DB->Query("update b_user_digest set digest_ha1='" . $DB->ForSQL($digest) . "' where user_id=" . $ID);
			}
		}
	}
}