Авторизация пользователей Ruby on Rails: писать свою или использовать gem-ы?
Для авторизации Devise (если хотите гибче - можете сразу Warden взять)
Для разграничения полномочий CanCan.
Все это уже давным-давно проверено на практике.
devise+pundit тоже неплохо вместе работают