При удалении роли у пользователя сбрасывается пароль

Главные вкладки

Аватар пользователя Poveritov Poveritov 2 сентября 2016 в 13:39

Подскажите пожалуйста как решить данную проблему:

при авторизации пользователя проверяется его статус в одной из таблиц, и если он равен 0, то необходимо удалить одну роль.

Я это реализую таким образом:

function mymodule_user($op, &$edit, &$account, $category = NULL){
..
 switch($op){
        case 'login':
           ...
         $edited_account = (array)$account;
         foreach($edited_account['roles'] as $key=>$role){
                        //оставляем все роли, кроме базового и оптимального
                        if(in_array($role, array('базовый','оптимальный')))
                        unset($edited_account['roles'][$key]);
        }
        user_save($account, $edited_account);
        break;
 }
}

Роли за данным пользователем снимаются, но при следующей авторизации происходит проблема: "Имя пользователя или пароль неверны."
Администратором меняю пароль и снова успешная авторизация.

Комментарии