Корректное удаление пользователей, как правильно?
Добрый день.
Нужно почистить список пользователей на сайте, отобранные по определенным критериям.
Делаю через консоль, через получение getCollections и вызова remove() на нужных мне пользователей.
Пользователи со списка удаляются, однако консоль выдает и много ошибок, суть которых мне не совсем ясна.
Отсюда и вопрос — это нормальный подход удаления пользователей?
Получаемые ошибки
Нужно почистить список пользователей на сайте, отобранные по определенным критериям.
Делаю через консоль, через получение getCollections и вызова remove() на нужных мне пользователей.
Пользователи со списка удаляются, однако консоль выдает и много ошибок, суть которых мне не совсем ясна.
Отсюда и вопрос — это нормальный подход удаления пользователей?
$user = $modx->getObject('modUser',1746);
$user->remove();
Получаемые ошибки
[2020-01-22 12:06:47] (ERROR @ /home/c/ct81850/site/public_html/core/xpdo/xpdo.class.php : 1320)
Could not get table class for class: modAccess
[2020-01-22 12:06:47] (ERROR @ /home/c/ct81850/site/public_html/core/xpdo/xpdo.class.php : 1289)
Could not get table name for class: modAccess
[2020-01-22 12:06:47] (ERROR @ /home/c/ct81850/site/public_html/core/xpdo/om/xpdoobject.class.php : 240)
Error 42000 executing statement:
Array
(
[0] => 42000
[1] => 1064
[2] => You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AS `modAccess` WHERE `modAccess`.`principal` = 1746' at line 1
)
[2020-01-22 12:06:47] (INFO @ /home/c/ct81850/site/public_html/core/xpdo/om/xpdoobject.class.php : 1714)
Removed modUserProfile instance with primary key 1739
[2020-01-22 12:06:47] (INFO @ /home/c/ct81850/site/public_html/core/xpdo/om/xpdoobject.class.php : 1714)
Removed modUserSetting instance with primary key Array
(
[0] => 1746
[1] => cultureKey
)
[2020-01-22 12:06:47] (INFO @ /home/c/ct81850/site/public_html/core/xpdo/om/xpdoobject.class.php : 1714)
Removed TicketAuthor instance with primary key 1746
[2020-01-22 12:06:47] (INFO @ /home/c/ct81850/site/public_html/core/xpdo/om/xpdoobject.class.php : 1714)
Removed modUser instance with primary key 1746
Комментарии: 4
Попробуйте через процессор (только бэкап на всяк случай сделайте)):
<?php
$data = array(
'id' => $id // ID юзера
);
$response = $modx->runProcessor('/security/user/delete', $data);
if ($response->isError()) {
$modx->log(modX::LOG_LEVEL_ERROR, 'login error. Username: '.$username.', Message: '.$response->getMessage());
}
спасибо, попробую.
Только сейчас дошли руки попробовать. Нет, не вышло. Ошибки ну просто один в один, хоть через процессор, хоть напрямую.
Ответ касаемо modAccess гуглится буквально за 30 секунд:
opengeek Reply #2, 7 years, 1 month ago
It's a known bug and is harmless. modAccess is an abstract class which all the modAccess tables use and it does not have a table itself.
Остальное — не ошибки, а уведомление о том, что объект удален, о чем говорит константа LOG_LEVEL_INFO.
opengeek Reply #2, 7 years, 1 month ago
It's a known bug and is harmless. modAccess is an abstract class which all the modAccess tables use and it does not have a table itself.
Остальное — не ошибки, а уведомление о том, что объект удален, о чем говорит константа LOG_LEVEL_INFO.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.