@lev89

Как удалить пользователя по условию?

Как удалить пользователя по условию, если роль пользователя не равно 3? Роли хранятся в отдельной таблице. При авторизации ID роли записывается в сессию. Не могу додуматься как правильно написать условие
public function deleteAction()
{
    $id = $this->getRequestID();
    $user = \R::load('users', $id);
    if ($_SESSION['user']['role_id'] == 3) {
        $_SESSION['error'] = 'Нельзя удалить суперпользователя';
    } else {
        \R::trash($user);
        $_SESSION['success'] = 'Пользователь удален';
    }
    redirect();
}
  • Вопрос задан
  • 69 просмотров
Пригласить эксперта
Ответы на вопрос 2
FanatPHP
@FanatPHP
Чебуратор тега PHP
Есть два упыря на ютубе.
На английском это некий Дани Кроссинг, а на русском - какое-то хаудихо.
И вот они вдвоем гадят РНР сообществу так, как не смог нагадить ни один ненавистинк РНР.
Обманом завлекая простодушных зрителей, они учат их какой-то смеси шаманства и детской игры в кубики.
Уроки уровня "Возьмешь красные кубики - будет красный домик. Возьмешь синие - будет синий".
Но, главное, они внушают своим жертвам мысль, что использовать РНР можно вообще не зная программирования. Или, в случае с этй хаудихой - еще и без знания SQL.

То есть они не учат самому главному - читать и понимать свой код. Они внушают своим жертвам, что написание программы - процесс односторонний. Сложил кубики в нужной последовательности, и забыл.
А то что программу надо уметь читать, что перед тем как складывать кубики надо подумать - в каком порядке, они даже и не упоминают. Потому что сами не знают.

Вот здесь например.
В сессии у тебя чей айди? Правильно. И какой тогда смысл его проверять?

Если тебе нужно проверять роль удаляемого пользователя, то её и надо сранивать.

послушай доброго совета, забудь про ютубу и про этот редбин.
Купи нормальную книжку, Котерова, и учи язык нормально. А не эти фантики.
Ответ написан
nokimaro
@nokimaro
Меня невозможно остановить, если я смогу начать.
После того как получили данные пользователя по id
$user = \R::load('users', $id);
надо получить роли этого пользователя
$user_roles = \R::load('roles', $user->id); //изменить под себя

И уже делать проверку по $user_roles (проверка роли "кого удаляем") а так же можно оставить проверку $_SESSION['user']['role_id'] (роль "кто удаляет") чтобы удалять мог только админ, всех "не админов"
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы