Small code optimizations

I changed a few lines of code. I added small optimization for available roles and also has_role? method use DB to check if user has role, not pluck all roles.
I actually think that this should use `exists?` rather than `present?`  

See https://github.com/rails/rails/blob/master/activerecord/lib/active_record/relation/finder_methods.rb#L257 for existence, vs https://github.com/rails/rails/blob/master/activesupport/lib/active_support/core_ext/object/blank.rb#L23 for `present?`.