Class: RubyCms::Admin::PermissionsController

Inherits:
BaseController show all
Includes:
RubyCms::AdminPagination, RubyCms::AdminTurboTable
Defined in:
app/controllers/ruby_cms/admin/permissions_controller.rb

Constant Summary

Constants included from RubyCms::AdminPagination

RubyCms::AdminPagination::DEFAULT_MAX_PER_PAGE, RubyCms::AdminPagination::DEFAULT_MIN_PER_PAGE

Instance Method Summary collapse

Methods included from RubyCms::AdminTurboTable

#turbo_frame_id, #turbo_frame_request?, #turbo_redirect_to, #turbo_render_index, #turbo_stream_replace_table, #turbo_stream_request?, #turbo_stream_update_table

Methods included from RubyCms::AdminPagination

#paginate_collection, #set_pagination_vars

Instance Method Details

#bulk_deleteObject



48
49
50
51
52
53
54
55
56
57
# File 'app/controllers/ruby_cms/admin/permissions_controller.rb', line 48

def bulk_delete
  ids = Array(params[:item_ids]).filter_map(&:to_i)
  permissions = RubyCms::Permission.where(id: ids)
  count = permissions.count
  permissions.destroy_all
  turbo_redirect_to ruby_cms_admin_permissions_path,
                    notice: "#{count} permission(s) #{
                      t('ruby_cms.admin.permissions.deleted')
                    }."
end

#createObject



28
29
30
31
32
33
34
35
36
37
38
39
# File 'app/controllers/ruby_cms/admin/permissions_controller.rb', line 28

def create
  @permission = RubyCms::Permission.new(permission_params)
  if @permission.save
    redirect_to ruby_cms_admin_permissions_path,
                notice: t("ruby_cms.admin.permissions.created")
  else
    @permissions = RubyCms::Permission.order(:key)
    flash.now[:alert] =
      "Could not create permission: #{@permission.errors.full_messages.to_sentence}"
    render :index, status: :unprocessable_content
  end
end

#destroyObject



41
42
43
44
45
46
# File 'app/controllers/ruby_cms/admin/permissions_controller.rb', line 41

def destroy
  @permission = RubyCms::Permission.find(params[:id])
  @permission.destroy
  redirect_to ruby_cms_admin_permissions_path,
              notice: t("ruby_cms.admin.permissions.deleted")
end

#indexObject



14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'app/controllers/ruby_cms/admin/permissions_controller.rb', line 14

def index
  collection = RubyCms::Permission.order(:key)

  if params[:q].present?
    search_term = "%#{params[:q].downcase}%"
    collection = collection.where("LOWER(key) LIKE ? OR LOWER(name) LIKE ?", search_term,
                                  search_term)
  end

  @permissions = paginate_collection(collection)
  # Ensure @permissions is always an iterable collection, never nil
  @index ||= RubyCms::Permission.none
end