Class: Mks::Auth::User

Inherits:
ApplicationRecord show all
Defined in:
app/models/mks/auth/user.rb

Overview

A model class to represent users of the system

Constant Summary collapse

VALID_EMAIL_REGEX =
/\A[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i

Instance Method Summary collapse

Instance Method Details

#any_role?(role_list) ⇒ Boolean

Returns:

  • (Boolean)


45
46
47
# File 'app/models/mks/auth/user.rb', line 45

def any_role?(role_list)
  roles.any? { |r| role_list.include?(r.name.underscore.to_sym) }
end

#full_nameObject



23
24
25
# File 'app/models/mks/auth/user.rb', line 23

def full_name
  "#{first_name} #{last_name}"
end

#has_module(code) ⇒ Object



35
36
37
38
39
# File 'app/models/mks/auth/user.rb', line 35

def has_module(code)
  app_module = ApplicationModule.find_by(code: code)
  roles = self.roles.select { |ur| ur.application_module == app_module }
  roles.count.positive?
end

#role?(role) ⇒ Boolean

Returns:

  • (Boolean)


41
42
43
# File 'app/models/mks/auth/user.rb', line 41

def role?(role)
  roles.any? { |r| r.name.underscore.to_sym == role }
end

#role_namesObject



27
28
29
# File 'app/models/mks/auth/user.rb', line 27

def role_names
  roles.map(&:name)
end

#to_token_payloadObject



31
32
33
# File 'app/models/mks/auth/user.rb', line 31

def to_token_payload
  { id: id, email: email, name: full_name, roles: role_names }
end