Если удалить пользователя, который оставлял сообщения на форуме, то его статус становится неопределенным как и положено, это если смотреть без авторизации на сайте. Если зайти под своим логином и паролем, то статус меняется на такой же, как и у залогенного и ссылка идет на его же профиль и роль его же показывается, что может ввести в заблуждение пользователей.
Я так понимаю, что причина в функции getUserInfo, которая обращается в конечном итоге к getLoggedId(), которая определяет id пользователя по кукам
Это логическая ошибка