summaryrefslogtreecommitdiff
path: root/app/controllers/shared_previews_controller.rb
blob: d482466d471d8fb10c206ac8c3ac9db15fbd0471 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class SharedPreviewsController < ApplicationController
  def show
    @page = Page.find_by!(preview_token: params[:token])
    node  = @page.node

    was_published    = @page.published_at.present?
    superseded       = was_published && node && node.head_id != @page.id
    currently_public = was_published && node && node.head_id == @page.id && @page.public?

    if superseded || currently_public
      redirect_to node_path(node)
      return
    end

    response.headers['X-Robots-Tag'] = 'noindex'
    render template: @page.valid_template, layout: "application"
  end
end