Browse Source

Fix: The ownership of forum items had been wrong

pull/4585/head
Michael 3 years ago
parent
commit
b7a5e076fc
2 changed files with 13 additions and 6 deletions
  1. +12
    -6
      src/Model/Item.php
  2. +1
    -0
      src/Protocol/OStatus.php

+ 12
- 6
src/Model/Item.php View File

@ -898,7 +898,11 @@ class Item extends BaseObject
$item['uid'] = 0;
$item['origin'] = 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"])) {
$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
$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)) {
return;
}
$owner_id = Contact::getIdForURL($self['url']);
// 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;
$forum_mode = ($prvgroup ? 2 : 1);
$fields = ['wall' => true, 'origin' => true, 'forum_mode' => $forum_mode,
'owner-name' => $self['name'], 'owner-link' => $self['url'], 'owner-avatar' => $self['thumb'],
'private' => $private, 'allow_cid' => $user['allow_cid'], 'allow_gid' => $user['allow_gid'],
'deny_cid' => $user['deny_cid'], 'deny_gid' => $user['deny_gid']];
$fields = ['wall' => true, 'origin' => true, 'forum_mode' => $forum_mode, 'contact-id' => $self['id'],
'owner-id' => $owner_id, 'owner-name' => $self['name'], 'owner-link' => $self['url'],
'owner-avatar' => $self['thumb'], 'private' => $private, 'allow_cid' => $user['allow_cid'],
'allow_gid' => $user['allow_gid'], 'deny_cid' => $user['deny_cid'], 'deny_gid' => $user['deny_gid']];
dba::update('item', $fields, ['id' => $item_id]);
self::updateThread($item_id);


+ 1
- 0
src/Protocol/OStatus.php View File

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


Loading…
Cancel
Save