diff --git a/app/controllers/activities_controller.rb b/app/controllers/activities_controller.rb index 930caf24843a..14a9af48b6b6 100644 --- a/app/controllers/activities_controller.rb +++ b/app/controllers/activities_controller.rb @@ -45,20 +45,18 @@ class ActivitiesController < ApplicationController accept_key_auth :index + rescue_from ActiveRecord::RecordNotFound do |exception| + op_handle_warning "Failed to find all resources in activities: #{exception.message}" + render_404(message: I18n.t(:error_can_not_find_all_resources)) + end + def index @events = @activity.events(from: @date_from.to_datetime, to: @date_to.to_datetime) respond_to do |format| - format.html do - respond_html - end - format.atom do - respond_atom - end + format.html { respond_html } + format.atom { respond_atom } end - rescue ActiveRecord::RecordNotFound => e - op_handle_warning "Failed to find all resources in activities: #{e.message}" - render_404 I18n.t(:error_can_not_find_all_resources) end def menu diff --git a/spec/controllers/activities_controller_spec.rb b/spec/controllers/activities_controller_spec.rb index f180975dd12f..b4fae82124b4 100644 --- a/spec/controllers/activities_controller_spec.rb +++ b/spec/controllers/activities_controller_spec.rb @@ -88,6 +88,16 @@ expect(response).to have_http_status(:not_found) end end + + describe "inactive user activity" do + let!(:inactive_user) { create(:user, status: User.statuses[:locked]) } + + it "renders 404" do + get "index", params: { user_id: inactive_user.id } + expect(response).to have_http_status(:not_found) + expect(response).to render_template "common/error" + end + end end describe "with activated activity module" do