Merge pull request #4143 from annando/comment-public
Likes on "uid=0" does work now
This commit is contained in:
commit
c40466fe2d
3 changed files with 34 additions and 26 deletions
|
@ -24,7 +24,7 @@ use Friendica\Protocol\Diaspora;
|
||||||
function do_like($item_id, $verb) {
|
function do_like($item_id, $verb) {
|
||||||
$a = get_app();
|
$a = get_app();
|
||||||
|
|
||||||
if (! local_user() && ! remote_user()) {
|
if (!local_user() && !remote_user()) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -73,28 +73,33 @@ function do_like($item_id, $verb) {
|
||||||
dbesc($item_id)
|
dbesc($item_id)
|
||||||
);
|
);
|
||||||
|
|
||||||
if (! $item_id || ! DBM::is_result($items)) {
|
if (!$item_id || !DBM::is_result($items)) {
|
||||||
logger('like: unknown item ' . $item_id);
|
logger('like: unknown item ' . $item_id);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
$item = $items[0];
|
$item = $items[0];
|
||||||
|
$uid = $item['uid'];
|
||||||
|
|
||||||
if (! can_write_wall($a, $item['uid'])) {
|
if (($uid == 0) && local_user()) {
|
||||||
logger('like: unable to write on wall ' . $item['uid']);
|
$uid = local_user();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!can_write_wall($a, $uid)) {
|
||||||
|
logger('like: unable to write on wall ' . $uid);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Retrieves the local post owner
|
// Retrieves the local post owner
|
||||||
$owners = q("SELECT `contact`.* FROM `contact`
|
$owners = q("SELECT `contact`.* FROM `contact`
|
||||||
WHERE `contact`.`self` = 1
|
WHERE `contact`.`self`
|
||||||
AND `contact`.`uid` = %d",
|
AND `contact`.`uid` = %d",
|
||||||
intval($item['uid'])
|
intval($uid)
|
||||||
);
|
);
|
||||||
if (DBM::is_result($owners)) {
|
if (DBM::is_result($owners)) {
|
||||||
$owner_self_contact = $owners[0];
|
$owner_self_contact = $owners[0];
|
||||||
} else {
|
} else {
|
||||||
logger('like: unknown owner ' . $item['uid']);
|
logger('like: unknown owner ' . $uid);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -112,11 +117,11 @@ function do_like($item_id, $verb) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Contact-id is the uid-dependant author contact
|
// 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_id = $owner_self_contact['id'];
|
||||||
$item_contact = $owner_self_contact;
|
$item_contact = $owner_self_contact;
|
||||||
} else {
|
} 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",
|
$contacts = q("SELECT * FROM `contact` WHERE `id` = %d",
|
||||||
intval($item_contact_id)
|
intval($item_contact_id)
|
||||||
|
@ -240,9 +245,8 @@ EOT;
|
||||||
|
|
||||||
// @todo: Explain this block
|
// @todo: Explain this block
|
||||||
if (! $item['visible']) {
|
if (! $item['visible']) {
|
||||||
q("UPDATE `item` SET `visible` = 1 WHERE `id` = %d AND `uid` = %d",
|
q("UPDATE `item` SET `visible` = 1 WHERE `id` = %d",
|
||||||
intval($item['id']),
|
intval($item['id'])
|
||||||
intval($item['uid'])
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
29
mod/like.php
29
mod/like.php
|
@ -3,33 +3,35 @@
|
||||||
use Friendica\App;
|
use Friendica\App;
|
||||||
use Friendica\Core\System;
|
use Friendica\Core\System;
|
||||||
|
|
||||||
require_once('include/security.php');
|
require_once 'include/security.php';
|
||||||
require_once('include/bbcode.php');
|
require_once 'include/bbcode.php';
|
||||||
require_once('include/items.php');
|
require_once 'include/items.php';
|
||||||
require_once('include/like.php');
|
require_once 'include/like.php';
|
||||||
|
|
||||||
function like_content(App $a) {
|
function like_content(App $a) {
|
||||||
if(! local_user() && ! remote_user()) {
|
if (!local_user() && !remote_user()) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
$verb = notags(trim($_GET['verb']));
|
$verb = notags(trim($_GET['verb']));
|
||||||
|
|
||||||
if(! $verb)
|
if (!$verb) {
|
||||||
$verb = 'like';
|
$verb = 'like';
|
||||||
|
}
|
||||||
|
|
||||||
$item_id = (($a->argc > 1) ? notags(trim($a->argv[1])) : 0);
|
$item_id = (($a->argc > 1) ? notags(trim($a->argv[1])) : 0);
|
||||||
|
|
||||||
$r = do_like($item_id, $verb);
|
$r = do_like($item_id, $verb);
|
||||||
if (!$r) return;
|
if (!$r) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// See if we've been passed a return path to redirect to
|
// See if we've been passed a return path to redirect to
|
||||||
$return_path = ((x($_REQUEST,'return')) ? $_REQUEST['return'] : '');
|
$return_path = ((x($_REQUEST,'return')) ? $_REQUEST['return'] : '');
|
||||||
|
|
||||||
like_content_return(System::baseUrl(), $return_path);
|
like_content_return(System::baseUrl(), $return_path);
|
||||||
killme(); // NOTREACHED
|
killme(); // NOTREACHED
|
||||||
// return; // NOTREACHED
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -37,15 +39,16 @@ function like_content(App $a) {
|
||||||
// then redirect back to the calling page. If not, just quietly end
|
// then redirect back to the calling page. If not, just quietly end
|
||||||
|
|
||||||
function like_content_return($baseurl, $return_path) {
|
function like_content_return($baseurl, $return_path) {
|
||||||
|
if ($return_path) {
|
||||||
if($return_path) {
|
|
||||||
$rand = '_=' . time();
|
$rand = '_=' . time();
|
||||||
if(strpos($return_path, '?')) $rand = "&$rand";
|
if (strpos($return_path, '?')) {
|
||||||
else $rand = "?$rand";
|
$rand = "&$rand";
|
||||||
|
} else {
|
||||||
|
$rand = "?$rand";
|
||||||
|
}
|
||||||
|
|
||||||
goaway($baseurl . "/" . $return_path . $rand);
|
goaway($baseurl . "/" . $return_path . $rand);
|
||||||
}
|
}
|
||||||
|
|
||||||
killme();
|
killme();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -280,7 +280,6 @@ class Notifier {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ($relay_to_owner) {
|
if ($relay_to_owner) {
|
||||||
logger('notifier: followup '.$target_item["guid"], LOGGER_DEBUG);
|
|
||||||
// local followup to remote post
|
// local followup to remote post
|
||||||
$followup = true;
|
$followup = true;
|
||||||
$public_message = false; // not public
|
$public_message = false; // not public
|
||||||
|
@ -288,6 +287,8 @@ class Notifier {
|
||||||
$recipients = array($parent['contact-id']);
|
$recipients = array($parent['contact-id']);
|
||||||
$recipients_followup = array($parent['contact-id']);
|
$recipients_followup = array($parent['contact-id']);
|
||||||
|
|
||||||
|
logger('notifier: followup '.$target_item["guid"].' to '.$conversant_str, LOGGER_DEBUG);
|
||||||
|
|
||||||
//if (!$target_item['private'] && $target_item['wall'] &&
|
//if (!$target_item['private'] && $target_item['wall'] &&
|
||||||
if (!$target_item['private'] &&
|
if (!$target_item['private'] &&
|
||||||
(strlen($target_item['allow_cid'].$target_item['allow_gid'].
|
(strlen($target_item['allow_cid'].$target_item['allow_gid'].
|
||||||
|
|
Loading…
Reference in a new issue