• Модуль: security
  • Путь к файлу: ~/bitrix/modules/security/classes/general/user.php
  • Класс: CSecurityUser
  • Вызов: CSecurityUser::setActive
static function setActive($pActive = false)
{
	$otpRecheckAgent = 'BitrixSecurityMfaOtpEvents::onRecheckDeactivate();';
	if($pActive)
	{
		if(!CSecurityUser::isActive())
		{
			RegisterModuleDependences("main", "OnBeforeUserLogin", "security", "CSecurityUser", "OnBeforeUserLogin", "100");
			RegisterModuleDependences("main", "OnAfterUserLogout", "security", "CSecurityUser", "OnAfterUserLogout", "100");
			CAgent::RemoveAgent($otpRecheckAgent, "security");
			CAgent::Add(array(
				"NAME" => $otpRecheckAgent,
				"MODULE_ID" => "security",
				"ACTIVE" => "Y",
				"AGENT_INTERVAL" => 3600,
				"IS_PERIOD" => "N"
			));
			COption::SetOptionString('security', 'otp_enabled', 'Y');
		}
	}
	else
	{
		if(CSecurityUser::isActive())
		{
			UnRegisterModuleDependences("main", "OnBeforeUserLogin", "security", "CSecurityUser", "OnBeforeUserLogin");
			UnRegisterModuleDependences("main", "OnAfterUserLogout", "security", "CSecurityUser", "OnAfterUserLogout");
			CAgent::RemoveAgent($otpRecheckAgent, "security");
			COption::SetOptionString('security', 'otp_enabled', 'N');
		}
	}
}