К содержанию

Удаление профиля пользователя по нажатию кнопки

Добрый день.
Подскажите, как сделать удаление профиля пользователя по нажатию кнопки.
Сделал такую форму:
<form action="" method="post">
	<input type="hidden" name="uid" value="[[!+modx.user.id]]">
	<input type="hidden" name="remove_profile" value="1">
	<button type="submit" class="btn btn-danger" name="remove" value="remove" onclick="return confirm('Удалить Ваш профиль?')">Удалить</button>
</form>
и такой сниппет, вызываемый также на странице с формой
<?php
if ($_POST['remove'] && ($_POST['remove_profile'] == 1)) {
        $processor = 'user/delete';
    }
$processorProps = array('processors_path' => $modx->getOption('core_path'). 'model/modx/processors/security/');
$response = $modx->runProcessor($processor, $_POST, $processorProps);
return true;
Но что-то не работает…
Где я ошибся?
Андрей
Андрей
01 мая 2017, 14:13
modx.pro
2 679
Реклама

Комментарии: 6

Сергей Шлоков
Сергей Шлоков Эксперт
01 мая 2017, 20:04
Для ясности… отдельно профиль удалить нельзя. Он удаляется автоматически при удалении пользователя. Собственно указанный процессор удаляет именно пользователя.

Каким образом процессор должен понять какого пользователя удалять? Ему нужно передать id пользователя. А форма ему передаёт uid.

Ну и наконец (насколько я помню) MODX не разрешает удалять текущего пользователя.

П.С. Если не нужны события плагинов, то можно удалить через
$user = $modx->getObject('modUser', (int) $_POST['uid']); 
$user->remove();
    Андрей
    Андрей Старожил
    01 мая 2017, 20:10
    Получается в связи с тем, что нельзя удалить текущего пользователя, вся моя идея не выполнима?
      Сергей Шлоков
      Сергей Шлоков Эксперт
      01 мая 2017, 20:15
      Попробуй через $user->remove(). Он менее строгий. Но страницу надо сразу обновлять или пользователя перенаправлять куда-то.
        Андрей
        Андрей Старожил
        01 мая 2017, 20:18
        То есть после этого можно сделать для редиректа?
        $modx->sendRedirect($modx->makeUrl($id,'','','full'));
          Сергей Шлоков
          Сергей Шлоков Эксперт
          01 мая 2017, 22:05
          Может лучше вместо удаления очищать профиль?
    Наумов Алексей
    Наумов Алексей Администратор
    01 мая 2017, 20:33
    Стоит задача удалить «себя»?

    тогда сценарий, видимо, такой: выходим из текущего профиля. удаляем его, делаем редирект на страницу «Пользователь удален».
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      6