Your IP : 216.73.216.170


Current Path : /home/bitrix/ext_www/pfcc.yacl.site/auth/
Upload File :
Current File : /home/bitrix/ext_www/pfcc.yacl.site/auth/forgotpwd.php

<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");

if (isset($_REQUEST["backurl"]) && strlen($_REQUEST["backurl"])>0) 
	LocalRedirect($backurl);

$APPLICATION->SetTitle("Воccтановление пароля");

$_REQUEST['set_debug'] = 'Y';

if($USER->IsAuthorized())
	LocalRedirect(SITE_DIR.'home/');

$chechByHash = reset(Veb\HL\UserForgotPassword::GetList(array(), array('UF_HASH' => $_REQUEST['bx_hash'])));

if(!$chechByHash || empty($_REQUEST['bx_hash']))
{
	LocalRedirect(SITE_DIR.'home/');
}
else 
{
	//hash может действовать только 24 часа, делаем проверку
	if(ConvertTimeStamp($chechByHash['UF_DATE']->getTimestamp()+86400) > time())
	{
		?>
		<section class="section section-item">
			<div class="container">
				Ссылка недействительна. Воспользуйтесь сервисом <a class="js-popup" style="color:#0086cd" href="#vforgotpasswd">Забыли пароль</a> еще раз.
			</div>
		</section>		
		<div class="popup popup-content mfp-hide" id="vforgotpasswd">
			<?
			$APPLICATION->IncludeComponent(
				"veb:forgot.password",
				"",
				Array(
				)
			);	
			?>
		</div>
		<?
	}
	else
	{
		if($chechByHash['UF_SEND_PSWD'])
		{
			?>
			<section class="section section-item">
				<div class="container">
					Пароль уже выслан на Ваш почтовый адрес электронной почты.
				</div>
			</section>				
			<?
		}
		else
		{
			$chechUser = \Bitrix\Main\UserTable::getList(array('filter'=>array('=ID' => $chechByHash["UF_USER_ID"]), 'select' => array('ID', 'NAME', 'LAST_NAME')))->Fetch();
			if($chechUser)
			{
				
				$password = Veb\User\GetRandomPassword();
				$obUser = new \CUser;
				$arFields = array(
					"PASSWORD"=>$password,
					"CONFIRM_PASSWORD"=>$password,
				);
				$obUser->Update($chechByHash["UF_USER_ID"], $arFields);
				
				Bitrix\Main\Mail\Event::sendImmediate([
				    "EVENT_NAME" => "VEB_NEW_PSWD_FORGOT", 
				    "LID" => SITE_ID, 
				    "C_FIELDS" => [ 
				        "EMAIL" => $chechByHash['UF_EMAIL'], 
				        "PASSWORD" => $password,
			    		"LAST_NAME" => $chechUser['LAST_NAME'],
				        "NAME" => $chechUser['NAME'],
				    ], 					
				]);		
				
				Veb\HL\UserForgotPassword::Update($chechByHash['ID'], array('UF_SEND_PSWD' => true));
				?>
				<section class="section section-item">
					<div class="container">
						На Ваш почтовый адрес электронной почты отправлено письмо с новым паролем.
					</div>
				</section>				
				<?				
			}
			else
			{
				?>
				<section class="section section-item">
					<div class="container">
						Пользователен не найден.
					</div>
				</section>				
				<?				
			}
		}
	}
}

require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");?>