• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/lib/authentication/applicationpassword.php
  • Класс: BitrixMainAuthenticationApplicationPasswordTable
  • Вызов: ApplicationPasswordTable::onBeforeAdd
static function onBeforeAdd(ORMEvent $event)
{
	$result = new ORMEventResult;
	$data = $event->getParameter("fields");

	if(isset($data["USER_ID"]) && isset($data['PASSWORD']))
	{
		$modified = [
			'PASSWORD' => MainSecurityPassword::hash($data['PASSWORD']),
		];

		$user = MainUserTable::getRowById($data["USER_ID"]);
		if($user !== null)
		{
			$realm = (defined('BX_HTTP_AUTH_REALM')? BX_HTTP_AUTH_REALM : "Bitrix Site Manager");
			$digest = md5($user["LOGIN"].':'.$realm.':'.$data['PASSWORD']);
			$modified['DIGEST_PASSWORD'] = $digest;
		}

		$result->modifyFields($modified);
	}
	return $result;
}