- Модуль: controller
- Путь к файлу: ~/bitrix/modules/controller/classes/general/controllermember.php
- Класс: CAllControllerMember
- Вызов: CAllControllerMember::RegisterMemberByPassword
static function RegisterMemberByPassword($ar_member, $admin_login, $admin_password, $controller_url = false)
{
/** @global CMain $APPLICATION */
global $APPLICATION;
if($controller_url===false)
$controller_url = COption::GetOptionString("controller", "controller_url", ($APPLICATION->IsHTTPS()?"https://":"http://").$_SERVER['HTTP_HOST']);
if(!isset($ar_member['MEMBER_ID']))
$ar_member['MEMBER_ID'] = "m".BitrixMainSecurityRandom::getString(31);
if(!isset($ar_member['SECRET_ID']))
$ar_member['SECRET_ID'] = "m".BitrixMainSecurityRandom::getString(31);
if(!CControllerMember::CheckFields($ar_member))
return false;
$arParameters = Array(
"member_id" => $ar_member['MEMBER_ID'],
"member_secret_id" => $ar_member['SECRET_ID'],
"controller_url" => $controller_url,
"admin_login" => $admin_login,
"admin_password" => $admin_password,
"join_command" => '
COption::SetOptionString("main", "controller_member", "Y");
COption::SetOptionString("main", "controller_ticket", "");
RegisterModuleDependences("main", "OnUserLoginExternal", "main", "CControllerClient", "OnExternalLogin", 1);
RegisterModuleDependences("main", "OnExternalAuthList", "main", "CControllerClient", "OnExternalAuthList");
',
"disconnect_command" => '
CControllerClient::RestoreAll();
COption::SetOptionString("main", "controller_member", "N");
COption::SetOptionString("main", "controller_member_id", "");
COption::SetOptionString("main", "controller_url", "");
UnRegisterModuleDependences("main", "OnUserLoginExternal", "main", "CControllerClient", "OnExternalLogin");
UnRegisterModuleDependences("main", "OnExternalAuthList", "main", "CControllerClient", "OnExternalAuthList");
'
);
$oRequest = new CControllerServerRequestTo($ar_member, "simple_register", $arParameters);
if(($oResponse = $oRequest->Send())===false)
{
return false;
}
$result = $oResponse->OK();
if($result === false)
{
$e = new CApplicationException($oResponse->text);
$APPLICATION->ThrowException($e);
}
else
{
$APPLICATION->ResetException();
if($ID = CControllerMember::Add($ar_member))
{
$arControllerLog = Array(
'NAME'=>'REGISTRATION',
'CONTROLLER_MEMBER_ID'=>$ID,
'DESCRIPTION'=>GetMessage("CTRLR_MEM_LOG_DESC_JOIN_BY_TICKET"),
'STATUS'=>'Y'
);
CControllerLog::Add($arControllerLog);
CControllerMember::SetGroupSettings($ID);
return $ID;
}
}
return false;
}