Насчет ролей уже подсказали
Авторизация чисто по логину - это что-то новое
Допустим у Вас в базе есть две ячейки: name, password. При регистрации в password Вы записываете пароль с использованием
вот это
Затем, при авторизации Вы ищете запись с name'ом (который в $_POST, с формы), если записи нету - пользователя с данным name не существует, нужно регистрироваться.
Если есть, вытягиваете пароль и пишете:
password_verify('123123', $password);
Если вернет True - Вы должны в куки/сессии сохранить айди юзера, чтобы в дальнейшем понимать, авторизован или нет.
(P.s: сделайте ячейку 'token' в таблице users и при авторизации (успешной естественно) записывайте туда рандомную строку и ее тоже в куки/сессии).
Если с RBAC проблемы - можно сделать еще проще:
users: .... | role (tinyInteger)
0 - обычный юзер, 1 - модератор, 2 - администратор и т.п