fix oembed spec; prevent people from commenting on posts that wont federate
This commit is contained in:
parent
03380516f1
commit
9789e25c99
4 changed files with 23 additions and 2 deletions
|
|
@ -19,8 +19,10 @@ class PostsController < ApplicationController
|
||||||
|
|
||||||
if user_signed_in?
|
if user_signed_in?
|
||||||
@post = current_user.find_visible_shareable_by_id(Post, params[:id], :key => key)
|
@post = current_user.find_visible_shareable_by_id(Post, params[:id], :key => key)
|
||||||
|
@commenting_disabled = user_can_not_comment_on_post?
|
||||||
else
|
else
|
||||||
@post = Post.where(key => params[:id], :public => true).includes(:author, :comments => :author).first
|
@post = Post.where(key => params[:id], :public => true).includes(:author, :comments => :author).first
|
||||||
|
@commenting_disabled = true
|
||||||
end
|
end
|
||||||
|
|
||||||
if @post
|
if @post
|
||||||
|
|
@ -65,4 +67,18 @@ class PostsController < ApplicationController
|
||||||
def set_format_if_malformed_from_status_net
|
def set_format_if_malformed_from_status_net
|
||||||
request.format = :html if request.format == 'application/html+xml'
|
request.format = :html if request.format == 'application/html+xml'
|
||||||
end
|
end
|
||||||
|
|
||||||
|
private
|
||||||
|
|
||||||
|
def user_can_not_comment_on_post?
|
||||||
|
if @post.public && @post.author.local?
|
||||||
|
false
|
||||||
|
elsif current_user.contact_for(@post.author)
|
||||||
|
false
|
||||||
|
elsif current_user.owns?(@post)
|
||||||
|
false
|
||||||
|
else
|
||||||
|
true
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -70,7 +70,10 @@
|
||||||
–
|
–
|
||||||
|
|
||||||
|
|
||||||
- unless commenting_disabled?(post)
|
- if commenting_disabled?(post)
|
||||||
|
%span.federated_person{:title => "#{t('.federated_account')}"}
|
||||||
|
=t('.currently_unavailable')
|
||||||
|
- else
|
||||||
%span.like_action
|
%span.like_action
|
||||||
= like_action(post, current_user)
|
= like_action(post, current_user)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -776,6 +776,8 @@ en:
|
||||||
all_contacts: "All contacts"
|
all_contacts: "All contacts"
|
||||||
stream_element:
|
stream_element:
|
||||||
viewable_to_anyone: "This post is viewable to anyone on the web"
|
viewable_to_anyone: "This post is viewable to anyone on the web"
|
||||||
|
federated_account: "Remote users who you are not connected to can not currently receive your likes and comments"
|
||||||
|
currently_unavailable: 'currently unavailable'
|
||||||
via: "via %{link}"
|
via: "via %{link}"
|
||||||
hide_and_mute: "Hide and Mute"
|
hide_and_mute: "Hide and Mute"
|
||||||
like: "Like"
|
like: "Like"
|
||||||
|
|
|
||||||
|
|
@ -109,7 +109,7 @@ describe OEmbedHelper do
|
||||||
real_data = data['oembed_data']
|
real_data = data['oembed_data']
|
||||||
cache = OEmbedCache.new(:url => data['link_url'])
|
cache = OEmbedCache.new(:url => data['link_url'])
|
||||||
cache.data = real_data
|
cache.data = real_data
|
||||||
formatted = o_embed_html(cache)
|
formatted = o_embed_html(cache).gsub('https', 'http')
|
||||||
case type
|
case type
|
||||||
when 'photo'
|
when 'photo'
|
||||||
formatted.should =~ /#{data['oembed_data']['url']}/
|
formatted.should =~ /#{data['oembed_data']['url']}/
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue