Class: Spotlight::RolesController

Inherits:
ApplicationController show all
Defined in:
app/controllers/spotlight/roles_controller.rb

Overview

CRUD actions for assigning exhibit roles to existing users

Instance Method Summary collapse

Methods included from Controller

#blacklight_config, #current_exhibit, #current_masthead, #current_masthead=, #default_masthead?, #exhibit_masthead?, #exhibit_search_action_url, #exhibit_search_facet_url, #search_action_url, #search_facet_url

Methods included from Config

#exhibit_specific_blacklight_config

Instance Method Details

#indexObject



10
11
12
13
14
15
16
17
# File 'app/controllers/spotlight/roles_controller.rb', line 10

def index
  role = @exhibit.roles.build
  authorize! :edit, role

  add_breadcrumb t(:'spotlight.exhibits.breadcrumb', title: @exhibit.title), @exhibit
  add_breadcrumb t(:'spotlight.administration.sidebar.header'), exhibit_dashboard_path(@exhibit)
  add_breadcrumb t(:'spotlight.administration.sidebar.users'), exhibit_roles_path(@exhibit)
end

#update_allObject



19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'app/controllers/spotlight/roles_controller.rb', line 19

def update_all
  authorize_nested_attributes! exhibit_params[:roles_attributes], Role

  any_deleted = exhibit_params[:roles_attributes].values.any? { |item| item['_destroy'].present? }

  if @exhibit.update(exhibit_params)
    notice = any_deleted ? t(:'helpers.submit.role.destroyed') : t(:'helpers.submit.role.updated')
    redirect_to exhibit_roles_path(@exhibit), notice: notice
  else
    flash[:alert] = t(:'helpers.submit.role.batch_error')
    render action: 'index'
  end
end