send a salmon slap to mentioned person when we reply to a notice

This commit is contained in:
Evan Prodromou 2010-09-01 14:35:43 -04:00
parent 8f06e3b281
commit c82b1cda82
2 changed files with 16 additions and 3 deletions

View File

@ -71,6 +71,7 @@ class UsersalmonAction extends SalmonAction
// Notice must either be a) in reply to a notice by this user
// or b) to the attention of this user
// or c) in reply to a notice to the attention of this user
$context = $this->activity->context;
@ -79,8 +80,9 @@ class UsersalmonAction extends SalmonAction
if (empty($notice)) {
throw new ClientException("In reply to unknown notice");
}
if ($notice->profile_id != $this->user->id) {
throw new ClientException("In reply to a notice not by this user");
if ($notice->profile_id != $this->user->id &&
!in_array($notice->getReplies(), $this->user->id)) {
throw new ClientException("In reply to a notice not by this user and not mentioning this user");
}
} else if (!empty($context->attention)) {
if (!in_array($this->user->uri, $context->attention) &&

View File

@ -67,6 +67,17 @@ class OStatusQueueHandler extends QueueHandler
}
}
if (!empty($this->notice->reply_to)) {
$replyTo = Notice::staticGet('id', $this->notice->reply_to);
if (!empty($replyTo)) {
foreach($replyTo->getReplies() as $profile_id) {
$oprofile = Ostatus_profile::staticGet('profile_id', $profile_id);
if ($oprofile) {
$this->pingReply($oprofile);
}
}
}
}
return true;
}