Fix: The ownership of forum items had been wrong

This commit is contained in:
Michael 2018-03-11 18:12:38 +00:00
parent 9941c73a31
commit b7a5e076fc
2 changed files with 13 additions and 6 deletions

View file

@ -898,7 +898,11 @@ class Item extends BaseObject
$item['uid'] = 0; $item['uid'] = 0;
$item['origin'] = 0; $item['origin'] = 0;
$item['wall'] = 0; $item['wall'] = 0;
$item['contact-id'] = Contact::getIdForURL($item['author-link']); if ($item['uri'] == $item['parent-uri']) {
$item['contact-id'] = Contact::getIdForURL($item['owner-link']);
} else {
$item['contact-id'] = Contact::getIdForURL($item['author-link']);
}
if (in_array($item['type'], ["net-comment", "wall-comment"])) { if (in_array($item['type'], ["net-comment", "wall-comment"])) {
$item['type'] = 'remote-comment'; $item['type'] = 'remote-comment';
@ -1265,21 +1269,23 @@ class Item extends BaseObject
} }
// now change this copy of the post to a forum head message and deliver to all the tgroup members // now change this copy of the post to a forum head message and deliver to all the tgroup members
$self = dba::selectFirst('contact', ['name', 'url', 'thumb'], ['uid' => $uid, 'self' => true]); $self = dba::selectFirst('contact', ['id', 'name', 'url', 'thumb'], ['uid' => $uid, 'self' => true]);
if (!DBM::is_result($self)) { if (!DBM::is_result($self)) {
return; return;
} }
$owner_id = Contact::getIdForURL($self['url']);
// also reset all the privacy bits to the forum default permissions // also reset all the privacy bits to the forum default permissions
$private = ($user['allow_cid'] || $user['allow_gid'] || $user['deny_cid'] || $user['deny_gid']) ? 1 : 0; $private = ($user['allow_cid'] || $user['allow_gid'] || $user['deny_cid'] || $user['deny_gid']) ? 1 : 0;
$forum_mode = ($prvgroup ? 2 : 1); $forum_mode = ($prvgroup ? 2 : 1);
$fields = ['wall' => true, 'origin' => true, 'forum_mode' => $forum_mode, $fields = ['wall' => true, 'origin' => true, 'forum_mode' => $forum_mode, 'contact-id' => $self['id'],
'owner-name' => $self['name'], 'owner-link' => $self['url'], 'owner-avatar' => $self['thumb'], 'owner-id' => $owner_id, 'owner-name' => $self['name'], 'owner-link' => $self['url'],
'private' => $private, 'allow_cid' => $user['allow_cid'], 'allow_gid' => $user['allow_gid'], 'owner-avatar' => $self['thumb'], 'private' => $private, 'allow_cid' => $user['allow_cid'],
'deny_cid' => $user['deny_cid'], 'deny_gid' => $user['deny_gid']]; 'allow_gid' => $user['allow_gid'], 'deny_cid' => $user['deny_cid'], 'deny_gid' => $user['deny_gid']];
dba::update('item', $fields, ['id' => $item_id]); dba::update('item', $fields, ['id' => $item_id]);
self::updateThread($item_id); self::updateThread($item_id);

View file

@ -2131,6 +2131,7 @@ class OStatus
AND NOT `item`.`deleted` AND NOT `item`.`deleted`
AND NOT `item`.`private` AND NOT `item`.`private`
AND `item`.`visible` AND `item`.`visible`
AND `item`.`wall`
AND `thread`.`network` IN ('%s', '%s') AND `thread`.`network` IN ('%s', '%s')
$sql_extra $sql_extra
ORDER BY `item`.`created` DESC LIMIT %d", ORDER BY `item`.`created` DESC LIMIT %d",