Попробовал добавить пользователя методом CUser:Add, не получилось.
Вот код:
Код |
---|
$admin_mail = "admin@email"; //тут должна быть почта админа
$Name = $root->getVariable("Name");
$LastName = $root->getVariable("LastName");
$SecondName = $root->getVariable("SecondName");
$WorkPosition = $root->getVariable("WorkPosition");
$Email = $root->getVariable("Email");
$Login = str_replace('@email.com', '', $Email);
$Password = '123456';
$user = new CUser;
$arFields = [
"NAME" => $Name,
"LAST_NAME" => $LastName,
"SECOND_NAME" => $SecondName,
"LOGIN" => $Login,
"PASSWORD" => $Password,
"CONFIRM_PASSWORD" => $Password,
"EMAIL" => $Email,
"ACTIVE" => "Y",
"LID" => "s1",
"GROUP_ID" => [11],
"WORK_POSITION" => $WorkPosition
];
$ID = $user->Add($arFields);
if(intval($ID) > 0) {
$subject = "Добавлен новый сотрудник: ".$Login;
$letter = "Добрый день!".PHP_EOL."На портал добавлен новый сотрудник: ".$Name." ".$LastName.".".PHP_EOL."Логин сотрудника: ".$Login;
mail ($admin_email, $subject, $letter);
}
else {
$subject = "Ошибка в выполнении бизнес-процесса"
$letter = "Добрый день!".PHP_EOL."В бизнес-процессе возникла ошибка:".PHP_EOL.$user->LAST_ERROR;
mail ($admin_email, $subject, $letter);
}
|
Вообще ничего не происходит - ни пользователь не добавляется, ни админу почта не идёт.
Попробовал выполнить код в командной PHP-строке - там всё сработало (конечно, вместо переменных из БП пришлось задавать другие):
Код |
---|
$email = "ivanych@bb.direct";
$pass = "123456";
$work = "tester";
$user = new CUser;
$params = [
"NAME" => "Tester",
"LAST_NAME" => "Tester",
"LOGIN" => str_replace("@email.com", "", $email),
"EMAIL" => $email,
"PASSWORD" => $pass,
"CONFIRM_PASSWORD" => $pass,
"WORK_POSITION" => $work,
"GROUP_ID" => [11],
"LID" => "s1"
];
$ID = $user->Add($params);
if(intval($ID) > 0) {
echo "Сотрудник добавлен на портал";
}
else {
echo $user->LAST_ERROR;
}
|
Не могу понять, что не так, вроде в документации написано, что переменные нужно задавать таким образом вместо {=Variable:Name > printable}. Хотя таким способом тоже пробовал, ничего не получилось
PS: в качестве почты указываются корпоративные ящики на одном домене, поэтому есть возможность использовать str_replace для создания логина