1
0
mirror of https://github.com/LaCasemate/fab-manager.git synced 2024-12-10 21:24:20 +01:00
fab-manager/app/models/concerns/user_role_concern.rb
2022-12-21 14:14:29 +01:00

73 lines
1.1 KiB
Ruby

# frozen_string_literal: true
# Add role-based functionalities to the user model
module UserRoleConcern
extend ActiveSupport::Concern
included do
def admin?
has_role? :admin
end
def member?
has_role? :member
end
def manager?
has_role? :manager
end
def partner?
has_role? :partner
end
def privileged?
admin? || manager?
end
def role
if admin?
'admin'
elsif manager?
'manager'
elsif member?
'member'
else
'other'
end
end
end
class_methods do
def admins
User.with_role(:admin)
end
def members
User.with_role(:member)
end
def partners
User.with_role(:partner)
end
def managers
User.with_role(:manager)
end
def admins_and_managers
User.with_any_role(:admin, :manager)
end
def online_payers
User.with_any_role(:admin, :manager, :member)
end
def adminsys
return if Rails.application.secrets.adminsys_email.blank?
User.find_by('lower(email) = ?', Rails.application.secrets.adminsys_email&.downcase)
end
end
end