Skip to content
Extraits de code Groupes Projets
Valider 99d4e0b3 rédigé par Jonne Haß's avatar Jonne Haß
Parcourir les fichiers

Merge branch 'stable' into develop

parents d9572ec3 69b46df3
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -90,6 +90,7 @@ With the port to Bootstrap 3, app/views/terms/default.haml has a new structure.
## Bug fixes
* Redirect to sign in page when a background request fails with 401 [#6496](https://github.com/diaspora/diaspora/pull/6496)
* Correctly skip setting sidekiq logfile on Heroku [#6500](https://github.com/diaspora/diaspora/pull/6500)
* Fix notifications for interactions by non-contacts [#6498](https://github.com/diaspora/diaspora/pull/6498)
## Features
......
......@@ -98,6 +98,7 @@ class Comment < ActiveRecord::Base
def initialize(person, target, text)
@text = text
@dispatcher_opts = {additional_subscribers: target.comments_authors.where.not(id: person.id)}
super(person, target)
end
......
......@@ -9,6 +9,7 @@ Feature: Notifications
| email |
| bob@bob.bob |
| alice@alice.alice |
| carol@carol.carol |
Scenario: someone shares with me
When I sign in as "bob@bob.bob"
......@@ -67,6 +68,80 @@ Feature: Notifications
Then I should see "commented on your post"
And I should have 1 email delivery
Scenario: unconnected user comments in reply to comment by another user who commented a post of someone who she shares with
Given "alice@alice.alice" has a public post with text "check this out!"
When I sign in as "bob@bob.bob"
And I am on "alice@alice.alice"'s page
And I focus the comment field
And I fill in the following:
| text | great post, alice! |
And I press "Comment"
Then I should see "less than a minute ago" within ".comment"
When I sign out
And I sign in as "carol@carol.carol"
And I am on "alice@alice.alice"'s page
And I focus the comment field
And I fill in the following:
| text | great comment, bob! |
And I press "Comment"
Then I should see "less than a minute ago" within ".comment:nth-child(2)"
When I sign out
And I sign in as "bob@bob.bob"
And I follow "Notifications" in the header
Then the notification dropdown should be visible
And I should see "also commented on"
And I should have 3 email delivery
Scenario: unconnected user comments in reply to my comment to her post
Given "alice@alice.alice" has a public post with text "check this out!"
When I sign in as "carol@carol.carol"
And I am on "alice@alice.alice"'s page
And I focus the comment field
And I fill in the following:
| text | great post, alice! |
And I press "Comment"
Then I should see "less than a minute ago" within ".comment"
When I sign out
And I sign in as "alice@alice.alice"
And I am on "alice@alice.alice"'s page
And I focus the comment field
And I fill in the following:
| text | great post, carol! |
And I press "Comment"
Then I should see "less than a minute ago" within ".comment:nth-child(2)"
When I sign out
And I sign in as "carol@carol.carol"
And I follow "Notifications" in the header
Then the notification dropdown should be visible
And I should see "also commented on"
And I should have 2 email delivery
Scenario: connected user comments in reply to my comment to an unconnected user's post
Given "alice@alice.alice" has a public post with text "check this out!"
And a user with email "bob@bob.bob" is connected with "carol@carol.carol"
When I sign in as "carol@carol.carol"
And I am on "alice@alice.alice"'s page
And I focus the comment field
And I fill in the following:
| text | great post! |
And I press "Comment"
Then I should see "less than a minute ago" within ".comment"
When I sign out
And I sign in as "bob@bob.bob"
And I am on "alice@alice.alice"'s page
And I focus the comment field
And I fill in the following:
| text | great post! |
And I press "Comment"
Then I should see "less than a minute ago" within ".comment:nth-child(2)"
When I sign out
And I sign in as "carol@carol.carol"
And I follow "Notifications" in the header
Then the notification dropdown should be visible
And I should see "also commented on"
And I should have 3 email delivery
Scenario: someone mentioned me in their post
Given a user with email "bob@bob.bob" is connected with "alice@alice.alice"
And Alice has a post mentioning Bob
......
......@@ -24,5 +24,8 @@ module Diaspora
update_all(:comments_count => self.comments.count)
end
def comments_authors
Person.where(id: comments.select(:author_id).distinct)
end
end
end
......@@ -5,13 +5,14 @@ module Federated
def initialize(user, target)
@user = user
@target = target
@dispatcher_opts ||= {}
end
def create!(options={})
relayable = build(options)
if relayable.save!
logger.info "user:#{@user.id} dispatching #{relayable.class}:#{relayable.guid}"
Postzord::Dispatcher.defer_build_and_post(@user, relayable)
Postzord::Dispatcher.defer_build_and_post(@user, relayable, @dispatcher_opts)
relayable
end
end
......
......@@ -61,5 +61,18 @@ class Postzord::Receiver::LocalBatch < Postzord::Receiver
@users.find_each do |user|
Notification.notify(user, @object, @object.author)
end
if @object.respond_to?(:target)
additional_subscriber = @object.target.author.owner
elsif @object.respond_to?(:post)
additional_subscriber = @object.post.author.owner
end
Notification.notify(additional_subscriber, @object, @object.author) if needs_notification?(additional_subscriber)
end
private
def needs_notification?(person)
person && person != @object.author.owner && !@users.exists?(person.id)
end
end
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter