11class PostsController < ApplicationController
22
3- before_action :authenticate_user! , except : [ :rss , :show ]
4- before_action :check_admin , except : [ :rss , :index , :show ]
3+ before_action :authenticate_user! , except : [ :rss , :show , :export , :raw ]
4+ before_action :check_admin , except : [ :rss , :index , :show , :export , :raw ]
55
66 def check_admin
77 redirect_to root_path unless current_user . is_admin
@@ -106,7 +106,7 @@ def rss
106106 def export
107107 @post = Post . find_by_id ( params [ :id ] )
108108 if @post . present?
109- return render file : "#{ Rails . root } /public/404.html" , layout : false , status : 404 if ! @post . check_privacy ( current_user ) || ( @post . user != current_user )
109+ return render file : "#{ Rails . root } /public/404.html" , layout : false , status : 404 if @post . user != current_user
110110 else
111111 return render file : "#{ Rails . root } /public/404.html" , layout : false , status : 404
112112 end
@@ -118,6 +118,16 @@ def export
118118 send_file ( file [ :path ] , filename : file [ :filename ] , type : file [ :type ] )
119119 end
120120
121+ def raw
122+ @post = Post . find_by_id ( params [ :id ] )
123+ if @post . present?
124+ return render file : "#{ Rails . root } /public/404.html" , layout : false , status : 404 unless @post . check_privacy ( current_user )
125+ else
126+ return render file : "#{ Rails . root } /public/404.html" , layout : false , status : 404
127+ end
128+ render 'posts/raw' , layout : 'clear'
129+ end
130+
121131 def import
122132 if params [ :file ] . present?
123133 file_blob = ActiveStorage ::Blob . find_signed! ( params [ :file ] )
0 commit comments