PageRenderTime 43ms CodeModel.GetById 13ms RepoModel.GetById 0ms app.codeStats 0ms

/components/bitrix/system.auth.initialize/component.php

https://gitlab.com/alexprowars/bitrix
PHP | 198 lines | 154 code | 30 blank | 14 comment | 38 complexity | e8d5445a2a14f150e0828a1a2f9b51bf MD5 | raw file
  1. <?php
  2. /**
  3. * Bitrix Framework
  4. * @package bitrix
  5. * @subpackage main
  6. * @copyright 2001-2014 Bitrix
  7. */
  8. /**
  9. * Bitrix vars
  10. * @global CUser $USER
  11. * @global CMain $APPLICATION
  12. * @param array $arParams
  13. * @param array $arResult
  14. * @param CBitrixComponent $this
  15. */
  16. if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)
  17. die();
  18. $arParams["USERID_VAR"] = trim($arParams["USERID_VAR"]);
  19. if($arParams["USERID_VAR"] == '')
  20. {
  21. $arParams["USERID_VAR"] = "user_id";
  22. }
  23. $arParams["CHECKWORD_VAR"] = trim($arParams["CHECKWORD_VAR"]);
  24. if($arParams["CHECKWORD_VAR"] == '')
  25. {
  26. $arParams["CHECKWORD_VAR"] = "checkword";
  27. }
  28. $arResult["~USER_ID"] = $_REQUEST[$arParams["USERID_VAR"]];
  29. $arResult["USER_ID"] = intval($arResult["~USER_ID"]);
  30. $arResult["~CHECKWORD"] = trim($_REQUEST[$arParams["CHECKWORD_VAR"]]);
  31. $arResult["CHECKWORD"] = htmlspecialcharsbx($arResult["~CHECKWORD"]);
  32. $arResult["MESSAGE_CODE"] = array();
  33. $arResult["SHOW_FORM"] = false;
  34. if($USER->IsAuthorized())
  35. {
  36. $arResult["MESSAGE_TEXT"] .= GetMessage("CC_MAIN_REG_INIT_MESSAGE_AUTHORIZED")."<br>";
  37. $arResult["MESSAGE_CODE"][] = "E02";
  38. }
  39. else
  40. {
  41. $rsUser = false;
  42. if($arResult["USER_ID"] > 0)
  43. {
  44. $rsUser = CUser::GetByID($arResult["~USER_ID"]);
  45. }
  46. if($rsUser && $arResult["USER"] = $rsUser->GetNext())
  47. {
  48. if($arResult["USER"]["LAST_LOGIN"] <> '')
  49. {
  50. $arResult["MESSAGE_TEXT"] .= GetMessage("CC_MAIN_REG_INIT_MESSAGE_AUTH_SUCCESS")."<br>";
  51. $arResult["MESSAGE_CODE"][] = "E30";
  52. }
  53. elseif($arResult["USER"]["ACTIVE"] !== "Y")
  54. {
  55. $arResult["MESSAGE_TEXT"] .= GetMessage("CC_MAIN_REG_INIT_MESSAGE_INACTIVE")."<br>";
  56. $arResult["MESSAGE_CODE"][] = "E03";
  57. }
  58. $salt = mb_substr($arResult["USER"]["CHECKWORD"], 0, 8);
  59. if($arResult["~CHECKWORD"] == '')
  60. {
  61. $arResult["MESSAGE_TEXT"] .= GetMessage("CC_MAIN_REG_INIT_MESSAGE_CHECKWORD_EMPTY")."<br>";
  62. $arResult["MESSAGE_CODE"][] = "E04";
  63. }
  64. elseif($arResult["USER"]["CONFIRM_CODE"] != $arResult["~CHECKWORD"] && $arResult["USER"]["CHECKWORD"] != $salt.md5($salt.$arResult["~CHECKWORD"]))
  65. {
  66. $arResult["MESSAGE_TEXT"] .= GetMessage("CC_MAIN_REG_INIT_MESSAGE_CHECKWORD_WRONG");
  67. $arResult["MESSAGE_CODE"][] = "E05";
  68. }
  69. if(empty($arResult["MESSAGE_CODE"]) && $_SERVER["REQUEST_METHOD"] == "POST" && $_POST["confirm"] <> '' && check_bitrix_sessid())
  70. {
  71. $arResult["USER"]["NAME"] = trim($_POST["NAME"]);
  72. $arResult["USER"]["LAST_NAME"] = trim($_POST["LAST_NAME"]);
  73. $arResult["USER"]["WORK_COMPANY"] = trim($_POST["WORK_COMPANY"]);
  74. $arResult["USER"]["WORK_PHONE"] = trim($_POST["WORK_PHONE"]);
  75. $arResult["PASSWORD"] = $_POST["PASSWORD"];
  76. $arResult["CONFIRM_PASSWORD"] = $_POST["CONFIRM_PASSWORD"];
  77. if($arResult["USER"]["NAME"] == '')
  78. {
  79. $arResult["MESSAGE_TEXT"] .= GetMessage("CC_MAIN_REG_INIT_MESSAGE_NAME_EMPTY")."<br>";
  80. $arResult["MESSAGE_CODE"][] = "E21";
  81. $arResult["SHOW_FORM"] = true;
  82. }
  83. if($arResult["USER"]["LAST_NAME"] == '')
  84. {
  85. $arResult["MESSAGE_TEXT"] .= GetMessage("CC_MAIN_REG_INIT_MESSAGE_LAST_NAME_EMPTY")."<br>";
  86. $arResult["MESSAGE_CODE"][] = "E22";
  87. $arResult["SHOW_FORM"] = true;
  88. }
  89. $arResult["GROUP_POLICY"] = CUser::GetGroupPolicy($arResult["USER"]["ID"]);
  90. if($_POST["PASSWORD"] == '')
  91. {
  92. $arResult["MESSAGE_TEXT"] .= GetMessage("CC_MAIN_REG_INIT_MESSAGE_PASSWORD_EMPTY")."<br>";
  93. $arResult["MESSAGE_CODE"][] = "E07";
  94. $arResult["SHOW_FORM"] = true;
  95. }
  96. elseif($_POST["PASSWORD"] !== $_POST["CONFIRM_PASSWORD"])
  97. {
  98. $arResult["MESSAGE_TEXT"] .= GetMessage("CC_MAIN_REG_INIT_MESSAGE_PASSWORD_NOT_CONFIRMED")."<br>";
  99. $arResult["MESSAGE_CODE"][] = "E08";
  100. $arResult["SHOW_FORM"] = true;
  101. }
  102. if(empty($arResult["MESSAGE_CODE"]))
  103. {
  104. $arFields = array(
  105. "CONFIRM_CODE" => "",
  106. "PASSWORD" => $_POST["PASSWORD"],
  107. "NAME" => $arResult["USER"]["NAME"],
  108. "LAST_NAME" => $arResult["USER"]["LAST_NAME"]
  109. );
  110. if (trim($_POST["WORK_COMPANY"]) <> '')
  111. {
  112. $arFields["WORK_COMPANY"] = trim($_POST["WORK_COMPANY"]);
  113. }
  114. if (trim($_POST["WORK_PHONE"]) <> '')
  115. {
  116. $arFields["WORK_PHONE"] = trim($_POST["WORK_PHONE"]);
  117. }
  118. if (is_array($_FILES["PERSONAL_PHOTO"]))
  119. {
  120. $arFields["PERSONAL_PHOTO"] = $_FILES["PERSONAL_PHOTO"];
  121. }
  122. $obUser = new CUser;
  123. $obUser->Update($arResult["USER"]["ID"], $arFields);
  124. $strError = $obUser->LAST_ERROR;
  125. if ($strError == '')
  126. {
  127. $db_events = GetModuleEvents("main", "OnUserInitialize", true);
  128. foreach($db_events as $arEvent)
  129. {
  130. ExecuteModuleEventEx($arEvent, array($arResult["USER"]["ID"], $arFields));
  131. }
  132. $obUser->Authorize($arResult["USER"]["ID"], $_POST["USER_REMEMBER"] == "Y");
  133. $SITE_DIR = SITE_DIR;
  134. if (!empty($arResult["USER"]["LID"]))
  135. {
  136. $rsSite = CSite::GetByID($arResult["USER"]["LID"]);
  137. if (
  138. ($arSite = $rsSite->Fetch())
  139. && !empty($arSite["DIR"])
  140. )
  141. {
  142. $SITE_DIR = $arSite["DIR"];
  143. }
  144. }
  145. LocalRedirect($SITE_DIR);
  146. }
  147. else
  148. {
  149. $arResult["MESSAGE_TEXT"] .= $strError;
  150. $arResult["MESSAGE_CODE"][] = "E10";
  151. $arResult["SHOW_FORM"] = true;
  152. }
  153. }
  154. }
  155. if(empty($arResult["MESSAGE_CODE"]))
  156. {
  157. $arResult["SHOW_FORM"] = true;
  158. }
  159. }
  160. else
  161. {
  162. $arResult["MESSAGE_TEXT"] .= GetMessage("CC_MAIN_REG_INIT_MESSAGE_NO_USER");
  163. $arResult["MESSAGE_CODE"][] = "E01";
  164. }
  165. }
  166. $arResult["~FORM_ACTION"] = $APPLICATION->GetCurPageParam();
  167. $arResult["FORM_ACTION"] = htmlspecialcharsbx($arResult["~FORM_ACTION"]);
  168. $this->IncludeComponentTemplate();