diff --git a/app/controllers/aspects_controller.rb b/app/controllers/aspects_controller.rb index afb6c7e5449ef0d82509b3fe5c67bea5492fd062..8dfd1d480107e35bff00620319798b8bb06de3fd 100644 --- a/app/controllers/aspects_controller.rb +++ b/app/controllers/aspects_controller.rb @@ -77,7 +77,7 @@ class AspectsController < ApplicationController def manage @aspect = :manage - @remote_requests = current_user.requests_for_me + @remote_requests = Request.hashes_for_person(current_user.person) @aspect_hashes = hashes_for_aspects @aspects, @contacts end diff --git a/app/controllers/status_messages_controller.rb b/app/controllers/status_messages_controller.rb index 5cca0b903ed204952e4e118164bc161a9e9002be..84a1f3381843ea0f64ce3ee6d6438137d58c18e5 100644 --- a/app/controllers/status_messages_controller.rb +++ b/app/controllers/status_messages_controller.rb @@ -18,7 +18,7 @@ class StatusMessagesController < ApplicationController public_flag = params[:status_message][:public] public_flag.to_s.match(/(true)/) ? public_flag = true : public_flag = false - params[:status_message][:public] = public_flag + params[:status_message][:public] = public_flag @status_message = current_user.build_post(:status_message, params[:status_message]) @@ -28,7 +28,7 @@ class StatusMessagesController < ApplicationController @status_message.photos += photos unless photos.nil? current_user.add_to_streams(@status_message, params[:status_message][:aspect_ids]) current_user.dispatch_post(@status_message, :to => params[:status_message][:aspect_ids], :url => post_url(@status_message)) - + for photo in photos photo.public = public_flag @@ -40,13 +40,13 @@ class StatusMessagesController < ApplicationController respond_to do |format| format.js{ render :json => { :post_id => @status_message.id, :html => render_to_string( - :partial => 'shared/stream_element', + :partial => 'shared/stream_element', :locals => { - :post => @status_message, + :post => @status_message, :person => @status_message.person, :photos => @status_message.photos, :comments => [], - :aspects => current_user.aspects, + :aspects => current_user.aspects, :current_user => current_user } ) diff --git a/app/models/request.rb b/app/models/request.rb index 8fd75631636a0ab09c29c5d87c36a067c0da7125..019d8d1d3d23c076a9711761d6df882882925452 100644 --- a/app/models/request.rb +++ b/app/models/request.rb @@ -68,6 +68,13 @@ class Request self.from.diaspora_handle end + def self.hashes_for_person person + requests = Request.to(person).all(:sent => false) + senders = Person.all(:id.in => requests.map{|r| r.from_id}, :fields => [:profile]) + senders_hash = {} + senders.each{|sender| senders_hash[sender.id] = sender} + requests.map{|r| {:request => r, :sender => senders_hash[r.from_id]}} + end private def no_pending_request if Request.first(:from_id => from_id, :to_id => to_id) diff --git a/app/views/aspects/manage.html.haml b/app/views/aspects/manage.html.haml index 5a39619b466b116d49e8104cf08090de2f1fa407..ecd4be3cf7a93214bffb57c876c78997d3309745 100644 --- a/app/views/aspects/manage.html.haml +++ b/app/views/aspects/manage.html.haml @@ -22,13 +22,13 @@ - if @remote_requests.size < 1 %li=t('.no_requests') - else - - for request in @remote_requests - %li.person.request{:data=>{:guid=>request.id, :person_id=>request.from.id}} + - for hash in @remote_requests + %li.person.request{:data=>{:guid=>hash[:request].id, :person_id=>hash[:sender].id}} .delete .x X .circle - = link_to person_image_tag(request.from), request.from + = link_to person_image_tag(hash[:sender]), hash[:sender] = render 'shared/invitations', :invites => @invites diff --git a/spec/models/request_spec.rb b/spec/models/request_spec.rb index 468fbdb0cb5366ccca3668dedb51ea71d3370247..1d53941da7252398e5e6ede0c4b11f6b8cbaf61d 100644 --- a/spec/models/request_spec.rb +++ b/spec/models/request_spec.rb @@ -108,6 +108,26 @@ describe Request do end end + describe '.hashes_for_person' do + before do + @user = make_user + @user2 = make_user + @user2.send_contact_request_to @user.person, @user2.aspects.create(:name => "hi") + @user.reload + @user2.reload + @hashes = Request.hashes_for_person(@user.person) + @hash = @hashes.first + end + it 'gives back requests' do + @hash[:request].should == Request.from(@user2).to(@user).first + end + it 'gives back people' do + @hash[:sender].should == @user2.person + end + it 'does not retrieve keys' do + @hash[:sender].serialized_public_key.should be_nil + end + end describe 'xml' do before do @request = Request.new(:from => user.person, :to => user2.person, :into => aspect) diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb index bbfc622025812303355d3ca2ccf17c7cb4b6f5c0..c11d5b99bb4aa9492f21b44f1a1b06c76986d0b1 100644 --- a/spec/models/user_spec.rb +++ b/spec/models/user_spec.rb @@ -127,7 +127,7 @@ describe User do end it 'should not contain periods' do - user = Factory.build(:user, :username => "kittens;") + user = Factory.build(:user, :username => "kittens.") user.should_not be_valid end