]> git.mxchange.org Git - friendica.git/commitdiff
Use another uid for likes
authorMichael <heluecht@pirati.ca>
Wed, 27 Dec 2017 21:44:22 +0000 (21:44 +0000)
committerMichael <heluecht@pirati.ca>
Wed, 27 Dec 2017 21:44:22 +0000 (21:44 +0000)
include/like.php

index 05bb758c2a08b8e0c136edf469f2d1c64a8901da..32a2cabcfd82a261366ca4c274adb53eec627405 100644 (file)
@@ -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'])
                );
        }