use parent_mid in the parent query for enotify instead of of the parent id. This should fix the issue with encrypted content in the notification messages (for locally posted replies). The fix was a bit harder than anticipated because we store the parent id as an int in the notify table so this had to be modified to char storage as well.

This commit is contained in:
friendica 2014-04-06 02:57:33 -07:00
parent a2b949f339
commit ad60e2c566
6 changed files with 21 additions and 13 deletions

View File

@ -47,7 +47,7 @@ define ( 'RED_PLATFORM', 'Red Matrix' );
define ( 'RED_VERSION', trim(file_get_contents('version.inc')) . 'R'); define ( 'RED_VERSION', trim(file_get_contents('version.inc')) . 'R');
define ( 'ZOT_REVISION', 1 ); define ( 'ZOT_REVISION', 1 );
define ( 'DB_UPDATE_VERSION', 1106 ); define ( 'DB_UPDATE_VERSION', 1107 );
define ( 'EOL', '<br />' . "\r\n" ); define ( 'EOL', '<br />' . "\r\n" );
define ( 'ATOM_TIME', 'Y-m-d\TH:i:s\Z' ); define ( 'ATOM_TIME', 'Y-m-d\TH:i:s\Z' );

View File

@ -102,7 +102,7 @@ function notification($params) {
if(array_key_exists('item',$params) && (! visible_activity($params['item']))) if(array_key_exists('item',$params) && (! visible_activity($params['item'])))
return; return;
$parent_id = $params['parent']; $parent_mid = $params['parent_mid'];
// Check to see if there was already a notify for this post. // Check to see if there was already a notify for this post.
// If so don't create a second notification // If so don't create a second notification
@ -123,9 +123,9 @@ function notification($params) {
$p = null; $p = null;
if($params['otype'] === 'item' && $parent_id) { if($params['otype'] === 'item' && $parent_mid) {
$p = q("select * from item where id = %d and uid = %d limit 1", $p = q("select * from item where mid = '%s' and uid = %d limit 1",
intval($parent_id), dbesc($parent_mid),
intval($recip['channel_id']) intval($recip['channel_id'])
); );
} }
@ -135,6 +135,7 @@ function notification($params) {
$item_post_type = item_post_type($p[0]); $item_post_type = item_post_type($p[0]);
$private = $p[0]['item_private']; $private = $p[0]['item_private'];
$parent_id = $p[0]['id'];
//$possess_desc = str_replace('<!item_type!>',$possess_desc); //$possess_desc = str_replace('<!item_type!>',$possess_desc);
@ -338,7 +339,7 @@ function notification($params) {
$datarray['aid'] = $recip['channel_account_id']; $datarray['aid'] = $recip['channel_account_id'];
$datarray['uid'] = $recip['channel_id']; $datarray['uid'] = $recip['channel_id'];
$datarray['link'] = $itemlink; $datarray['link'] = $itemlink;
$datarray['parent'] = $parent_id; $datarray['parent'] = $parent_mid;
$datarray['type'] = $params['type']; $datarray['type'] = $params['type'];
$datarray['verb'] = $params['verb']; $datarray['verb'] = $params['verb'];
$datarray['otype'] = $params['otype']; $datarray['otype'] = $params['otype'];
@ -355,7 +356,7 @@ function notification($params) {
// create notification entry in DB // create notification entry in DB
$r = q("insert into notify (hash,name,url,photo,date,aid,uid,link,parent,type,verb,otype) $r = q("insert into notify (hash,name,url,photo,date,aid,uid,link,parent,type,verb,otype)
values('%s','%s','%s','%s','%s',%d,%d,'%s',%d,%d,'%s','%s')", values('%s','%s','%s','%s','%s',%d,%d,'%s','%s',%d,'%s','%s')",
dbesc($datarray['hash']), dbesc($datarray['hash']),
dbesc($datarray['name']), dbesc($datarray['name']),
dbesc($datarray['url']), dbesc($datarray['url']),
@ -364,7 +365,7 @@ function notification($params) {
intval($datarray['aid']), intval($datarray['aid']),
intval($datarray['uid']), intval($datarray['uid']),
dbesc($datarray['link']), dbesc($datarray['link']),
intval($datarray['parent']), dbesc($datarray['parent']),
intval($datarray['type']), intval($datarray['type']),
dbesc($datarray['verb']), dbesc($datarray['verb']),
dbesc($datarray['otype']) dbesc($datarray['otype'])
@ -432,7 +433,7 @@ function notification($params) {
$datarray['sitename'] = $sitename; $datarray['sitename'] = $sitename;
$datarray['siteurl'] = $siteurl; $datarray['siteurl'] = $siteurl;
$datarray['type'] = $params['type']; $datarray['type'] = $params['type'];
$datarray['parent'] = $params['parent']; $datarray['parent'] = $params['parent_mid'];
$datarray['source_name'] = $sender['xchan_name']; $datarray['source_name'] = $sender['xchan_name'];
$datarray['source_link'] = $sender['xchan_url']; $datarray['source_link'] = $sender['xchan_url'];
$datarray['source_photo'] = $sender['xchan_photo_s']; $datarray['source_photo'] = $sender['xchan_photo_s'];

View File

@ -622,7 +622,7 @@ CREATE TABLE IF NOT EXISTS `notify` (
`aid` int(11) NOT NULL, `aid` int(11) NOT NULL,
`uid` int(11) NOT NULL, `uid` int(11) NOT NULL,
`link` char(255) NOT NULL, `link` char(255) NOT NULL,
`parent` int(11) NOT NULL, `parent` char(255) NOT NULL DEFAULT '',
`seen` tinyint(1) NOT NULL DEFAULT '0', `seen` tinyint(1) NOT NULL DEFAULT '0',
`type` int(11) NOT NULL, `type` int(11) NOT NULL,
`verb` char(255) NOT NULL, `verb` char(255) NOT NULL,

View File

@ -1,6 +1,6 @@
<?php <?php
define( 'UPDATE_VERSION' , 1106 ); define( 'UPDATE_VERSION' , 1107 );
/** /**
* *
@ -1182,3 +1182,10 @@ CHANGE `site_sync` `site_sync` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
return UPDATE_FAILED; return UPDATE_FAILED;
} }
function update_r1106() {
$r = q("ALTER TABLE `notify` CHANGE `parent` `parent` CHAR( 255 ) NOT NULL DEFAULT ''");
if($r)
return UPDATE_SUCCESS;
return UPDATE_FAILED;
}

View File

@ -11,7 +11,7 @@ function notify_init(&$a) {
intval(local_user()) intval(local_user())
); );
if($r) { if($r) {
q("update notify set seen = 1 where ( link = '%s' or ( parent != 0 and parent = %d and otype = '%s' )) and uid = %d", q("update notify set seen = 1 where ( link = '%s' or ( parent != '' and parent = '%s' and otype = '%s' )) and uid = %d",
dbesc($r[0]['link']), dbesc($r[0]['link']),
intval($r[0]['parent']), intval($r[0]['parent']),
dbesc($r[0]['otype']), dbesc($r[0]['otype']),

View File

@ -1 +1 @@
2014-04-05.638 2014-04-06.639