diff --git a/include/like.php b/include/like.php index 05bb758c2..32a2cabcf 100644 --- a/include/like.php +++ b/include/like.php @@ -79,26 +79,28 @@ function do_like($item_id, $verb) { } $item = $items[0]; + $uid = $item['uid']; - if (!can_write_wall($a, $item['uid']) && ($item['uid'] != 0)) { - logger('like: unable to write on wall ' . $item['uid']); + if (!can_write_wall($a, $uid) && (($uid != 0) || !local_user())) { + logger('like: unable to write on wall ' . $uid); return false; } // Retrieves the local post owner - if ($item['uid'] != 0) { + if ($uid != 0) { $owners = q("SELECT `contact`.* FROM `contact` WHERE `contact`.`self` AND `contact`.`uid` = %d", - intval($item['uid']) + intval($uid) ); if (DBM::is_result($owners)) { $owner_self_contact = $owners[0]; } else { - logger('like: unknown owner ' . $item['uid']); + logger('like: unknown owner ' . $uid); return false; } } else { + $uid = local_user(); $owner_self_contact = ['uid' => 0, 'nick' => 'feed-item']; } @@ -116,11 +118,11 @@ function do_like($item_id, $verb) { } // Contact-id is the uid-dependant author contact - if (local_user() == $item['uid']) { + if (local_user() == $uid) { $item_contact_id = $owner_self_contact['id']; $item_contact = $owner_self_contact; } else { - $item_contact_id = Contact::getIdForURL($author_contact['url'], $item['uid']); + $item_contact_id = Contact::getIdForURL($author_contact['url'], $uid); $contacts = q("SELECT * FROM `contact` WHERE `id` = %d", intval($item_contact_id) @@ -150,7 +152,7 @@ function do_like($item_id, $verb) { AND (`parent` = '%s' OR `parent-uri` = '%s' OR `thr-parent` = '%s') LIMIT 1", intval($author_contact['id']), - intval($item['uid']), + intval($uid), dbesc($item_id), dbesc($item_id), dbesc($item['uri']) ); @@ -209,8 +211,8 @@ EOT; $new_item = array( 'guid' => get_guid(32), - 'uri' => item_new_uri($a->get_hostname(), $item['uid']), - 'uid' => $item['uid'], + 'uri' => item_new_uri($a->get_hostname(), $uid), + 'uid' => $uid, 'contact-id' => $item_contact_id, 'type' => 'activity', 'wall' => $item['wall'], @@ -244,9 +246,8 @@ EOT; // @todo: Explain this block if (! $item['visible']) { - q("UPDATE `item` SET `visible` = 1 WHERE `id` = %d AND `uid` = %d", - intval($item['id']), - intval($item['uid']) + q("UPDATE `item` SET `visible` = 1 WHERE `id` = %d", + intval($item['id']) ); }