Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/diaspora/diaspora.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteffen van Bergerem <svbergerem@online.de>2014-10-04 03:14:42 +0400
committerSteffen van Bergerem <svbergerem@online.de>2014-10-10 05:12:07 +0400
commit8ca5ca7c92bc3960bce80c17b1fb33aa724bfdff (patch)
tree376f03fdb0549324a0243c78b13a5ec116679513
parentd44300c7a2b7bc8bd33ab880134695d0dc75d490 (diff)
Reshare the absolute root of a post
-rw-r--r--Changelog.md1
-rw-r--r--app/controllers/reshares_controller.rb8
-rw-r--r--spec/controllers/reshares_controller_spec.rb13
3 files changed, 21 insertions, 1 deletions
diff --git a/Changelog.md b/Changelog.md
index fa44e79ee..36a68d14f 100644
--- a/Changelog.md
+++ b/Changelog.md
@@ -44,6 +44,7 @@ The default for including jQuery from a CDN has changed. If you want to continue
* Pull punycode.js from rails-assets.org [#5263](https://github.com/diaspora/diaspora/pull/5263)
* Redesign profile page and port to Bootstrap [#4657](https://github.com/diaspora/diaspora/pull/4657)
* Unify stream selection links in the left sidebar [#5271](https://github.com/diaspora/diaspora/pull/5271)
+* Always reshare absolute root of a post [#5276](https://github.com/diaspora/diaspora/pull/5276)
## Bug fixes
* orca cannot see 'Add Contact' button [#5158](https://github.com/diaspora/diaspora/pull/5158)
diff --git a/app/controllers/reshares_controller.rb b/app/controllers/reshares_controller.rb
index 7fc4e815f..1e49a5aa0 100644
--- a/app/controllers/reshares_controller.rb
+++ b/app/controllers/reshares_controller.rb
@@ -3,7 +3,13 @@ class ResharesController < ApplicationController
respond_to :json
def create
- @reshare = current_user.build_post(:reshare, :root_guid => params[:root_guid])
+ post = Post.where(:guid => params[:root_guid]).first
+ if post.is_a? Reshare
+ @reshare = current_user.build_post(:reshare, :root_guid => post.absolute_root.guid)
+ else
+ @reshare = current_user.build_post(:reshare, :root_guid => params[:root_guid])
+ end
+
if @reshare.save
current_user.add_to_streams(@reshare, current_user.aspects)
current_user.dispatch_post(@reshare, :url => post_url(@reshare), :additional_subscribers => @reshare.root_author)
diff --git a/spec/controllers/reshares_controller_spec.rb b/spec/controllers/reshares_controller_spec.rb
index aa21badae..8f9090784 100644
--- a/spec/controllers/reshares_controller_spec.rb
+++ b/spec/controllers/reshares_controller_spec.rb
@@ -54,6 +54,19 @@ describe ResharesController, :type => :controller do
expect(response.body.strip).to be_empty
end
end
+
+ context 'resharing another user\'s reshare' do
+ before do
+ @root = @post
+ @post = FactoryGirl.create(:reshare, :root => @root, :author => alice.person)
+ end
+
+ it 'reshares the absolute root' do
+ post_request!
+ expect(@post.reshares.count).to eq(0)
+ expect(@root.reshares.count).to eq(2)
+ end
+ end
end
end
end