diff --git a/app/views/layouts/application.html.haml b/app/views/layouts/application.html.haml index 0defb3463..84fb4d812 100644 --- a/app/views/layouts/application.html.haml +++ b/app/views/layouts/application.html.haml @@ -62,5 +62,5 @@ .span-24.last = yield - .span-19.prepend-5.last + .span-24.last = render "posts/debug" diff --git a/app/views/photos/_photo.haml b/app/views/photos/_photo.haml index 01baaf74e..5b7d8462e 100644 --- a/app/views/photos/_photo.haml +++ b/app/views/photos/_photo.haml @@ -27,8 +27,7 @@ %br %br - = render "albums/album", :post => post.album, :current_user => current_user - = link_to (image_tag post.url(:thumb_medium)), object_path(post) + = link_to (image_tag post.url(:thumb_large)), object_path(post) .info %span.time= link_to(how_long_ago(post), photo_path(post)) diff --git a/app/views/status_messages/show.html.haml b/app/views/status_messages/show.html.haml index 4521bae5a..7046c69a2 100644 --- a/app/views/status_messages/show.html.haml +++ b/app/views/status_messages/show.html.haml @@ -2,14 +2,22 @@ -# licensed under the Affero General Public License version 3 or later. See -# the COPYRIGHT file. -%h1 - = link_to @status_message.person.real_name, @status_message.person - = @status_message.message +.span-14.append-1.last + #stream + %h1.show_text + = person_image_link(@status_message.person) + = link_to @status_message.person.real_name, @status_message.person + = make_links(@status_message.message) -%h4= "#{t('.comments')} (#{@status_message.comments.count})" + = "Posted #{how_long_ago(@status_message)} to" + - for aspect in current_user.aspects_with_post( @status_message.id ) + = link_to aspect.name, aspect -= render "comments/comments", :post => @status_message - -%p - if current_user.owns? @status_message - = link_to t('.destroy'), @status_message, :confirm => t('are_you_sure?'), :method => :delete + %p + = link_to t('.destroy'), @status_message, :confirm => t('.are_you_sure'), :method => :delete + +.span-9.last + #stream.show + %li.message{:id => @status_message.id} + = render "comments/comments", :post => @status_message diff --git a/lib/diaspora/user/receiving.rb b/lib/diaspora/user/receiving.rb index 3a8fc5fa6..f459862ba 100644 --- a/lib/diaspora/user/receiving.rb +++ b/lib/diaspora/user/receiving.rb @@ -17,17 +17,23 @@ module Diaspora sender_in_xml = sender(object, xml) if (salmon_author == sender_in_xml) - if object.is_a? Retraction - receive_retraction object, xml - elsif object.is_a? Request + + if object.is_a? Request receive_request object, sender_in_xml - elsif object.is_a? Profile - receive_profile object, xml - elsif object.is_a?(Comment) - receive_comment object, xml + elsif self.friend_ids.include? salmon_author.id + if object.is_a? Retraction + receive_retraction object, xml + elsif object.is_a? Profile + receive_profile object, xml + elsif object.is_a?(Comment) + receive_comment object, xml + else + receive_post object, xml + end else - receive_post object, xml + raise "Not friends with that person" end + else raise "Malicious Post, #{salmon_author.real_name} with id #{salmon_author.id} is sending a #{object.class} as #{sender_in_xml.real_name} with id #{sender_in_xml.id} " end diff --git a/public/stylesheets/sass/application.sass b/public/stylesheets/sass/application.sass index 5f1106f03..064017959 100644 --- a/public/stylesheets/sass/application.sass +++ b/public/stylesheets/sass/application.sass @@ -179,14 +179,13 @@ header :margin :left 425px -ul#stream +#stream :margin 0 :padding 0 > li :min-height 50px :list-style none :padding 12px 0 - :right 12px :border :bottom 1px solid #eee @@ -404,6 +403,20 @@ form :margin :right 1em +#stream.show + div.comments + :display block + ul.comment_set + :margin + :top 0 + > li + :border none + :padding 0 + &:hover + > li + :background none + :border none + #stream div.comments :display none @@ -1066,3 +1079,7 @@ header :font :size small +.show_text + img + :height 27px + :width 27px diff --git a/spec/controllers/publics_controller_spec.rb b/spec/controllers/publics_controller_spec.rb index 113ca4a9b..cf1a71d88 100644 --- a/spec/controllers/publics_controller_spec.rb +++ b/spec/controllers/publics_controller_spec.rb @@ -8,7 +8,8 @@ describe PublicsController do render_views let(:user) {Factory.create :user} let(:user2){Factory.create :user} - + let(:aspect1){user.aspect(:name => "foo")} + let(:aspect2){user2.aspect(:name => "far")} before do sign_in :user, user end @@ -21,7 +22,8 @@ describe PublicsController do it 'should accept a post from another node and save the information' do message = user2.build_post(:status_message, :message => "hi") - + friend_users(user, aspect1, user2, aspect2) + user.reload user.visible_post_ids.include?(message.id).should be false diff --git a/spec/lib/diaspora_parser_spec.rb b/spec/lib/diaspora_parser_spec.rb index 33efe2f0a..6c3c697df 100644 --- a/spec/lib/diaspora_parser_spec.rb +++ b/spec/lib/diaspora_parser_spec.rb @@ -12,6 +12,8 @@ describe Diaspora::Parser do @user3 = Factory.create :user @person = @user3.person @user2 = Factory.create(:user) + @aspect2 = @user2.aspect(:name => "pandas") + friend_users(@user, @aspect, @user2, @aspect2) end describe "parsing compliant XML object" do @@ -49,7 +51,7 @@ describe Diaspora::Parser do end it 'should marshal retractions' do - person = Factory.create(:person) + person = @user2.person message = Factory.create(:status_message, :person => person) retraction = Retraction.for(message) xml = retraction.to_diaspora_xml @@ -95,17 +97,17 @@ describe Diaspora::Parser do end it "should activate the Person if I initiated a request to that url" do - request = @user.send_friend_request_to( @user2.person, @aspect) + request = @user.send_friend_request_to( @user3.person, @aspect) @user.reload - request.reverse_for @user2 + request.reverse_for @user3 xml = request.to_diaspora_xml - @user2.person.destroy - @user2.destroy + @user3.person.destroy + @user3.destroy - @user.receive xml, @user2.person - new_person = Person.first(:url => @user2.person.url) + @user.receive xml, @user3.person + new_person = Person.first(:url => @user3.person.url) new_person.nil?.should be false @user.reload @@ -115,18 +117,20 @@ describe Diaspora::Parser do end it 'should process retraction for a person' do + user4 = Factory(:user) + person_count = Person.all.count - request = @user.send_friend_request_to( @user2.person, @aspect) + request = @user.send_friend_request_to( user4.person, @aspect) @user.reload - request.reverse_for @user2 + request.reverse_for user4 xml = request.to_diaspora_xml - retraction = Retraction.for(@user2) + retraction = Retraction.for(user4) retraction_xml = retraction.to_diaspora_xml - @user2.person.destroy - @user2.destroy - @user.receive xml, @user2.person + user4.person.destroy + user4.destroy + @user.receive xml, user4.person @aspect.reload @@ -134,7 +138,7 @@ describe Diaspora::Parser do #They are now friends Person.count.should == person_count - @user.receive retraction_xml, @user2.person + @user.receive retraction_xml, user4.person @aspect.reload @@ -143,7 +147,7 @@ describe Diaspora::Parser do it 'should marshal a profile for a person' do #Create person - person = Factory.create(:person) + person = @user2.person id = person.id person.profile = Profile.new(:first_name => 'bob', :last_name => 'billytown', :image_url => "http://clown.com") person.save diff --git a/spec/models/photo_spec.rb b/spec/models/photo_spec.rb index 51b1c058d..d97f14d75 100644 --- a/spec/models/photo_spec.rb +++ b/spec/models/photo_spec.rb @@ -102,10 +102,18 @@ describe Photo do end it 'should set the remote_photo on marshalling' do + pending "did the socket get unstubbed?" @photo.image.store! File.open(@fixture_name) + + #security hax + user2 = Factory.create(:user) + aspect2 = user2.aspect(:name => "foobars") + friend_users(@user, @aspect, user2, aspect2) + @photo.person = user2.person + @photo.save - @photo.reload + #@photo.reload url = @photo.url thumb_url = @photo.url :thumb_medium diff --git a/spec/models/user/attack_vectors_spec.rb b/spec/models/user/attack_vectors_spec.rb index ebab7cf37..67235f447 100644 --- a/spec/models/user/attack_vectors_spec.rb +++ b/spec/models/user/attack_vectors_spec.rb @@ -25,7 +25,6 @@ describe User do context 'non-friend valid user' do it 'raises if receives post by non-friend' do - pending "need to that posts come from friends.... requests need special treatment(because the person may not be in the db)" post_from_non_friend = bad_user.build_post( :status_message, :message => 'hi') xml = bad_user.salmon(post_from_non_friend).xml_for(user.person)