diff options
author | Steffen van Bergerem <svbergerem@online.de> | 2014-10-04 03:14:42 +0400 |
---|---|---|
committer | Steffen van Bergerem <svbergerem@online.de> | 2014-10-10 05:12:07 +0400 |
commit | 8ca5ca7c92bc3960bce80c17b1fb33aa724bfdff (patch) | |
tree | 376f03fdb0549324a0243c78b13a5ec116679513 | |
parent | d44300c7a2b7bc8bd33ab880134695d0dc75d490 (diff) |
Reshare the absolute root of a post
-rw-r--r-- | Changelog.md | 1 | ||||
-rw-r--r-- | app/controllers/reshares_controller.rb | 8 | ||||
-rw-r--r-- | spec/controllers/reshares_controller_spec.rb | 13 |
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 |