Почему-то метод CUser::Update не хочет этого делать, если указать только обновление поля LOGIN.
Пример не работоспособного скрипта: проходим по всем пользователям с помощью метода
CUser::GetList и в цикле, с помощью CUser::Update пытаемся перезаписать логин из электронной почты пользователя.
| Код |
|---|
$USER_UPD = new CUser;
$rsUsers = CUser::GetList(
($by = "ID"),
($order = "desc"),
false
);
while ($arUser = $rsUsers->Fetch()) {
$fields = array(
"LOGIN" => $arUser['EMAIL']
);
$USER_UPD->Update($arUser['ID'], $fields);
}
|
Почему это не срабатывает разобраться не удалось (в ядро особо не лазил, что бы разобраться, если кто-то знает напишите)
Пример работоспособного кода: просто, добавил перезапись EMAIL поля из самого себя и все сработало:
| Код |
|---|
$USER_UPD = new CUser;
$rsUsers = CUser::GetList(
($by = "ID"),
($order = "desc"),
false
);
while ($arUser = $rsUsers->Fetch()) {
$fields = array(
"EMAIL" => $arUser['EMAIL'],
"LOGIN" => $arUser['EMAIL']
);
$USER_UPD->Update($arUser['ID'], $fields);
}
|