diff options
Diffstat (limited to 'app/controllers/shared_previews_controller.rb')
| -rw-r--r-- | app/controllers/shared_previews_controller.rb | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/app/controllers/shared_previews_controller.rb b/app/controllers/shared_previews_controller.rb index a8a540f..d482466 100644 --- a/app/controllers/shared_previews_controller.rb +++ b/app/controllers/shared_previews_controller.rb | |||
| @@ -1,9 +1,14 @@ | |||
| 1 | class SharedPreviewsController < ApplicationController | 1 | class SharedPreviewsController < ApplicationController |
| 2 | def show | 2 | def show |
| 3 | @page = Page.find_by!(preview_token: params[:token]) | 3 | @page = Page.find_by!(preview_token: params[:token]) |
| 4 | node = @page.node | ||
| 4 | 5 | ||
| 5 | if @page.node && @page.node.head_id == @page.id | 6 | was_published = @page.published_at.present? |
| 6 | redirect_to node_path(@page.node) | 7 | superseded = was_published && node && node.head_id != @page.id |
| 8 | currently_public = was_published && node && node.head_id == @page.id && @page.public? | ||
| 9 | |||
| 10 | if superseded || currently_public | ||
| 11 | redirect_to node_path(node) | ||
| 7 | return | 12 | return |
| 8 | end | 13 | end |
| 9 | 14 | ||
