From a87c6e55f7e9a0d073a98fd899567d273d2f46b7 Mon Sep 17 00:00:00 2001 From: AEtherC0r3 Date: Wed, 9 Aug 2017 12:05:11 +0300 Subject: [PATCH] Remove unnecessary ability from adminAbilities CanCanCan can load @events and @event in EventsController by itself --- app/controllers/admin/events_controller.rb | 13 ------------- app/controllers/admin/reports_controller.rb | 4 +++- app/models/admin_ability.rb | 4 ---- spec/features/track_organizer_ability_spec.rb | 2 +- 4 files changed, 4 insertions(+), 19 deletions(-) diff --git a/app/controllers/admin/events_controller.rb b/app/controllers/admin/events_controller.rb index 1aa2e4bd..c93c3892 100644 --- a/app/controllers/admin/events_controller.rb +++ b/app/controllers/admin/events_controller.rb @@ -5,8 +5,6 @@ module Admin load_and_authorize_resource :event, through: :program load_and_authorize_resource :events_registration, only: :toggle_attendance - before_action :get_event, except: [:index, :create, :new] - # FIXME: The timezome should only be applied on output, otherwise # you get lost in timezone conversions... # around_filter :set_timezone_for_this_request @@ -16,7 +14,6 @@ module Admin end def index - @events = @program.events @tracks = @program.tracks.confirmed.cfp_active @difficulty_levels = @program.difficulty_levels @event_types = @program.event_types @@ -187,16 +184,6 @@ module Admin params.require(:comment).permit(:commentable, :body, :user_id) end - def get_event - @event = @conference.program.events.find(params[:id]) - unless @event - redirect_to admin_conference_program_events_path(conference_id: @conference.short_title), - error: 'Error! Could not find event!' - return - end - @event - end - def update_state(transition, notice, mail = false, subject = false, send_mail = false) alert = @event.update_state(transition, mail, subject, send_mail, params[:send_mail].blank?) diff --git a/app/controllers/admin/reports_controller.rb b/app/controllers/admin/reports_controller.rb index c6d4003c..b01a4bdc 100644 --- a/app/controllers/admin/reports_controller.rb +++ b/app/controllers/admin/reports_controller.rb @@ -2,9 +2,11 @@ module Admin class ReportsController < Admin::BaseController load_and_authorize_resource :conference, find_by: :short_title load_and_authorize_resource :program, through: :conference, singleton: true + # For some reason this doesn't work, so a workaround is used + # load_and_authorize_resource :event, through: :program def index - @events = @program.events + @events = Event.accessible_by(current_ability).where(program: @program) @events_commercials = Commercial.where(commercialable_type: 'Event', commercialable_id: @events.pluck(:id)) @events_missing_commercial = @events.where.not(id: @events_commercials.pluck(:commercialable_id)) @events_with_requirements = @events.where.not(description: ['', nil]) diff --git a/app/models/admin_ability.rb b/app/models/admin_ability.rb index 7fd805d1..e8b8d098 100644 --- a/app/models/admin_ability.rb +++ b/app/models/admin_ability.rb @@ -39,10 +39,6 @@ class AdminAbility event.program.cfp_open? && event.new_record? end - can [:update, :show, :index], Event do |event| - event.users.include?(user) - end - # can manage the commercials of their own events can :manage, Commercial, commercialable_type: 'Event', commercialable_id: user.events.pluck(:id) diff --git a/spec/features/track_organizer_ability_spec.rb b/spec/features/track_organizer_ability_spec.rb index 49e46915..91c0b55a 100644 --- a/spec/features/track_organizer_ability_spec.rb +++ b/spec/features/track_organizer_ability_spec.rb @@ -101,7 +101,7 @@ feature 'Has correct abilities' do expect(current_path).to eq root_path visit admin_conference_program_events_path(conference.short_title) - expect(current_path).to eq admin_conference_program_events_path(conference.short_title) + expect(current_path).to eq root_path create(:event, program: conference.program) visit edit_admin_conference_program_event_path(conference.short_title, conference.program.events.first)