~cytrogen/masto-fe

cac9110533374d5d508b62ab5d35136e859b944c — ThibG 6 years ago 7fa23ec
Cleanup various controllers (#10972)

* Remove skip_session! as it is not supported in Rails 5

* Minor cleanup in StreamEntriesController

* Remove redundant mark_cacheable! calls
M app/controllers/accounts_controller.rb => app/controllers/accounts_controller.rb +0 -2
@@ 46,8 46,6 @@ class AccountsController < ApplicationController
      end

      format.json do
        mark_cacheable!

        render_cached_json(['activitypub', 'actor', @account], content_type: 'application/activity+json') do
          ActiveModelSerializers::SerializableResource.new(@account, serializer: ActivityPub::ActorSerializer, adapter: ActivityPub::Adapter)
        end

M app/controllers/activitypub/collections_controller.rb => app/controllers/activitypub/collections_controller.rb +0 -2
@@ 9,8 9,6 @@ class ActivityPub::CollectionsController < Api::BaseController
  before_action :set_cache_headers

  def show
    skip_session!

    render_cached_json(['activitypub', 'collection', @account, params[:id]], content_type: 'application/activity+json') do
      ActiveModelSerializers::SerializableResource.new(
        collection_presenter,

M app/controllers/activitypub/outboxes_controller.rb => app/controllers/activitypub/outboxes_controller.rb +1 -4
@@ 10,10 10,7 @@ class ActivityPub::OutboxesController < Api::BaseController
  before_action :set_cache_headers

  def show
    unless page_requested?
      skip_session!
      expires_in 1.minute, public: true
    end
    expires_in 1.minute, public: true unless page_requested?

    render json: outbox_presenter, serializer: ActivityPub::OutboxSerializer, adapter: ActivityPub::Adapter, content_type: 'application/activity+json'
  end

M app/controllers/application_controller.rb => app/controllers/application_controller.rb +0 -5
@@ 152,11 152,6 @@ class ApplicationController < ActionController::Base
  end

  def mark_cacheable!
    skip_session!
    expires_in 0, public: true
  end

  def skip_session!
    request.session_options[:skip] = true
  end
end

M app/controllers/concerns/account_controller_concern.rb => app/controllers/concerns/account_controller_concern.rb +0 -1
@@ 70,7 70,6 @@ module AccountControllerConcern

  def check_account_suspension
    if @account.suspended?
      skip_session!
      expires_in(3.minutes, public: true)
      gone
    end

M app/controllers/custom_css_controller.rb => app/controllers/custom_css_controller.rb +0 -1
@@ 4,7 4,6 @@ class CustomCssController < ApplicationController
  before_action :set_cache_headers

  def show
    skip_session!
    render plain: Setting.custom_css || '', content_type: 'text/css'
  end
end

M app/controllers/emojis_controller.rb => app/controllers/emojis_controller.rb +0 -2
@@ 7,8 7,6 @@ class EmojisController < ApplicationController
  def show
    respond_to do |format|
      format.json do
        skip_session!

        render_cached_json(['activitypub', 'emoji', @emoji], content_type: 'application/activity+json') do
          ActiveModelSerializers::SerializableResource.new(@emoji, serializer: ActivityPub::EmojiSerializer, adapter: ActivityPub::Adapter)
        end

M app/controllers/follower_accounts_controller.rb => app/controllers/follower_accounts_controller.rb +1 -4
@@ 19,10 19,7 @@ class FollowerAccountsController < ApplicationController
      format.json do
        raise Mastodon::NotPermittedError if params[:page].present? && @account.user_hides_network?

        if params[:page].blank?
          skip_session!
          expires_in 3.minutes, public: true
        end
        expires_in 3.minutes, public: true if params[:page].blank?

        render json: collection_presenter,
               serializer: ActivityPub::CollectionSerializer,

M app/controllers/following_accounts_controller.rb => app/controllers/following_accounts_controller.rb +1 -4
@@ 19,10 19,7 @@ class FollowingAccountsController < ApplicationController
      format.json do
        raise Mastodon::NotPermittedError if params[:page].present? && @account.user_hides_network?

        if params[:page].blank?
          skip_session!
          expires_in 3.minutes, public: true
        end
        expires_in 3.minutes, public: true if params[:page].blank?

        render json: collection_presenter,
               serializer: ActivityPub::CollectionSerializer,

M app/controllers/statuses_controller.rb => app/controllers/statuses_controller.rb +1 -11
@@ 27,10 27,7 @@ class StatusesController < ApplicationController
  def show
    respond_to do |format|
      format.html do
        if current_account.nil?
          skip_session!
          expires_in 10.seconds, public: true
        end
        expires_in 10.seconds, public: true if current_account.nil?

        @body_classes = 'with-modals'



@@ 41,8 38,6 @@ class StatusesController < ApplicationController
      end

      format.json do
        mark_cacheable! unless @stream_entry.hidden?

        render_cached_json(['activitypub', 'note', @status], content_type: 'application/activity+json', public: !@stream_entry.hidden?) do
          ActiveModelSerializers::SerializableResource.new(@status, serializer: ActivityPub::NoteSerializer, adapter: ActivityPub::Adapter)
        end


@@ 51,8 46,6 @@ class StatusesController < ApplicationController
  end

  def activity
    skip_session!

    render_cached_json(['activitypub', 'activity', @status], content_type: 'application/activity+json', public: !@stream_entry.hidden?) do
      ActiveModelSerializers::SerializableResource.new(@status, serializer: ActivityPub::ActivitySerializer, adapter: ActivityPub::Adapter)
    end


@@ 61,7 54,6 @@ class StatusesController < ApplicationController
  def embed
    raise ActiveRecord::RecordNotFound if @status.hidden?

    skip_session!
    expires_in 180, public: true
    response.headers['X-Frame-Options'] = 'ALLOWALL'
    @autoplay = ActiveModel::Type::Boolean.new.cast(params[:autoplay])


@@ 70,8 62,6 @@ class StatusesController < ApplicationController
  end

  def replies
    skip_session!

    render json: replies_collection_presenter,
           serializer: ActivityPub::CollectionSerializer,
           adapter: ActivityPub::Adapter,

M app/controllers/stream_entries_controller.rb => app/controllers/stream_entries_controller.rb +4 -10
@@ 15,19 15,13 @@ class StreamEntriesController < ApplicationController
  def show
    respond_to do |format|
      format.html do
        unless user_signed_in?
          skip_session!
          expires_in 5.minutes, public: true
        end
        expires_in 5.minutes, public: true unless @stream_entry.hidden?

        redirect_to short_account_status_url(params[:account_username], @stream_entry.activity) if @type == 'status'
        redirect_to short_account_status_url(params[:account_username], @stream_entry.activity)
      end

      format.atom do
        unless @stream_entry.hidden?
          skip_session!
          expires_in 3.minutes, public: true
        end
        expires_in 3.minutes, public: true unless @stream_entry.hidden?

        render xml: OStatus::AtomSerializer.render(OStatus::AtomSerializer.new.entry(@stream_entry, true))
      end


@@ 55,7 49,7 @@ class StreamEntriesController < ApplicationController

  def set_stream_entry
    @stream_entry = @account.stream_entries.where(activity_type: 'Status').find(params[:id])
    @type         = @stream_entry.activity_type.downcase
    @type         = 'status'

    raise ActiveRecord::RecordNotFound if @stream_entry.activity.nil?
    authorize @stream_entry.activity, :show? if @stream_entry.hidden?