if @resource.is_a?(Account)
render :show
elsif @resource.is_a?(Status)
- redirect_to web_url("statuses/#{@resource.id}")
+ redirect_to web_url("@#{@resource.account.pretty_acct}/#{@resource.id}")
else
render :error
end
else
render :error
end
- rescue ActiveRecord::RecordNotFound, Mastodon::NotPermittedError
+ rescue ActiveRecord::RecordNotFound
render :error
end
private
def set_resource
- @resource = located_resource || render(:error)
+ @resource = located_resource
authorize(@resource, :show?) if @resource.is_a?(Status)
+ rescue Mastodon::NotPermittedError
+ not_found
end
def located_resource
end
format.json do
- raise Mastodon::NotPermittedError if page_requested? && @account.hide_collections?
+ if page_requested? && @account.hide_collections?
+ forbidden
+ next
+ end
expires_in(page_requested? ? 0 : 3.minutes, public: public_fetch_mode?)