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
- #add_default_roles ⇒ Object
- #admin_roles ⇒ Object
- #all_exhibit_roles ⇒ Object
- #exhibit_roles ⇒ Object
- #invite_pending? ⇒ Boolean
- #superadmin? ⇒ Boolean
- #viewer_roles ⇒ Object
Instance Method Details
#add_default_roles ⇒ Object
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_roles ⇒ Object
34 35 36 |
# File 'app/models/concerns/spotlight/user.rb', line 34 def admin_roles exhibit_roles.where(role: 'admin') end |
#all_exhibit_roles ⇒ Object
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_roles ⇒ Object
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
44 45 46 |
# File 'app/models/concerns/spotlight/user.rb', line 44 def invite_pending? invited_to_sign_up? && !invitation_accepted? end |
#superadmin? ⇒ 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_roles ⇒ Object
30 31 32 |
# File 'app/models/concerns/spotlight/user.rb', line 30 def viewer_roles roles.where(resource_type: 'Spotlight::Exhibit', role: 'viewer') end |