Module: Spotlight::User

Extended by:
ActiveSupport::Concern
Defined in:
app/models/concerns/spotlight/user.rb

Overview

Spotlight user mixins for roles

Defined Under Namespace

Modules: ClassMethods

Instance Method Summary collapse

Instance Method Details

#add_default_rolesObject



38
39
40
41
42
# File 'app/models/concerns/spotlight/user.rb', line 38

def add_default_roles
  return unless Spotlight::Engine.config.assign_default_roles_to_first_user

  roles.build role: 'admin', resource: Spotlight::Site.instance unless self.class.any?
end

#admin_rolesObject



34
35
36
# File 'app/models/concerns/spotlight/user.rb', line 34

def admin_roles
  exhibit_roles.where(role: 'admin')
end

#all_exhibit_rolesObject



22
23
24
# File 'app/models/concerns/spotlight/user.rb', line 22

def all_exhibit_roles
  roles.includes(:resource).where(resource_type: 'Spotlight::Exhibit')
end

#exhibit_rolesObject



26
27
28
# File 'app/models/concerns/spotlight/user.rb', line 26

def exhibit_roles
  roles.where(resource_type: 'Spotlight::Exhibit').where.not(role: 'viewer')
end

#invite_pending?Boolean

Returns:

  • (Boolean)


44
45
46
# File 'app/models/concerns/spotlight/user.rb', line 44

def invite_pending?
  invited_to_sign_up? && !invitation_accepted?
end

#superadmin?Boolean

Returns:

  • (Boolean)


18
19
20
# File 'app/models/concerns/spotlight/user.rb', line 18

def superadmin?
  roles.where(role: 'admin', resource: Spotlight::Site.instance).any?
end

#viewer_rolesObject



30
31
32
# File 'app/models/concerns/spotlight/user.rb', line 30

def viewer_roles
  roles.where(resource_type: 'Spotlight::Exhibit', role: 'viewer')
end