don't propagate deletions for other people's stuff

This commit is contained in:
Friendika 2011-10-13 15:32:43 -07:00
parent d60505ffb0
commit 4eae1e5d8a
2 changed files with 12 additions and 1 deletions

View file

@ -8,7 +8,7 @@ require_once("include/pgettext.php");
require_once('include/nav.php'); require_once('include/nav.php');
define ( 'FRIENDIKA_PLATFORM', 'Free Friendika'); define ( 'FRIENDIKA_PLATFORM', 'Free Friendika');
define ( 'FRIENDIKA_VERSION', '2.3.1132' ); define ( 'FRIENDIKA_VERSION', '2.3.1133' );
define ( 'DFRN_PROTOCOL_VERSION', '2.21' ); define ( 'DFRN_PROTOCOL_VERSION', '2.21' );
define ( 'DB_UPDATE_VERSION', 1095 ); define ( 'DB_UPDATE_VERSION', 1095 );

View file

@ -192,6 +192,8 @@ function notifier_run($argv, $argc){
// be notified during this run. // be notified during this run.
// Other DFRN conversation members will be alerted during polled updates. // Other DFRN conversation members will be alerted during polled updates.
// Diaspora members currently are not notified of expirations, and other networks have // Diaspora members currently are not notified of expirations, and other networks have
// either limited or no ability to process deletions. We should at least fix Diaspora // either limited or no ability to process deletions. We should at least fix Diaspora
// by stringing togther an array of retractions and sending them onward. // by stringing togther an array of retractions and sending them onward.
@ -210,6 +212,7 @@ function notifier_run($argv, $argc){
*/ */
if((! $top_level) && ($parent['wall'] == 0) && (! $expire) && (stristr($target_item['uri'],$localhost))) { if((! $top_level) && ($parent['wall'] == 0) && (! $expire) && (stristr($target_item['uri'],$localhost))) {
logger('notifier: followup', LOGGER_DEBUG);
// local followup to remote post // local followup to remote post
$followup = true; $followup = true;
$public_message = false; // not public $public_message = false; // not public
@ -218,6 +221,13 @@ function notifier_run($argv, $argc){
else { else {
$followup = false; $followup = false;
// don't send deletions onward for other people's stuff
if($target_item['deleted'] && (! intval($target_item['wall']))) {
logger('notifier: ignoring delete notification for non-wall item');
return;
}
if((strlen($parent['allow_cid'])) if((strlen($parent['allow_cid']))
|| (strlen($parent['allow_gid'])) || (strlen($parent['allow_gid']))
|| (strlen($parent['deny_cid'])) || (strlen($parent['deny_cid']))
@ -357,6 +367,7 @@ function notifier_run($argv, $argc){
if(($public_message) && $item['private']) if(($public_message) && $item['private'])
continue; continue;
$contact = get_item_contact($item,$contacts); $contact = get_item_contact($item,$contacts);
if(! $contact) if(! $contact)