aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Zotlabs/Lib/ThreadItem.php2
-rw-r--r--Zotlabs/Module/Starred.php37
2 files changed, 27 insertions, 12 deletions
diff --git a/Zotlabs/Lib/ThreadItem.php b/Zotlabs/Lib/ThreadItem.php
index e43264c0d..a02c1415e 100644
--- a/Zotlabs/Lib/ThreadItem.php
+++ b/Zotlabs/Lib/ThreadItem.php
@@ -284,7 +284,7 @@ class ThreadItem {
if($this->is_toplevel()) {
// FIXME check this permission
- if(($conv->get_profile_owner() == local_channel()) && (! array_key_exists('real_uid',$item))) {
+ if($conv->get_profile_owner() === local_channel() || intval($item['item_private']) === 0) {
$star = array(
'toggle' => t("Toggle Star Status"),
diff --git a/Zotlabs/Module/Starred.php b/Zotlabs/Module/Starred.php
index 2d7063669..a9542f590 100644
--- a/Zotlabs/Module/Starred.php
+++ b/Zotlabs/Module/Starred.php
@@ -1,31 +1,46 @@
<?php
namespace Zotlabs\Module;
+use App;
use Zotlabs\Lib\Libsync;
-
class Starred extends \Zotlabs\Web\Controller {
function init() {
-
+
$starred = 0;
-
+
if(! local_channel())
killme();
if(argc() > 1)
$message_id = intval(argv(1));
if(! $message_id)
killme();
-
- $r = q("SELECT item_starred FROM item WHERE uid = %d AND id = %d LIMIT 1",
+
+ $sys = get_sys_channel();
+
+ $r = q("SELECT * FROM item WHERE (uid = %d OR uid = %d) AND id = %d
+ and item_type in (0,6,7) and item_deleted = 0 and item_unpublished = 0
+ and item_delayed = 0 and item_pending_remove = 0 and item_blocked = 0 LIMIT 1",
intval(local_channel()),
+ intval($sys['channel_id']),
intval($message_id)
);
- if(! count($r))
+
+ if ($r) {
+ if ($r[0]['uid'] === $sys['channel_id']) {
+ $r = [ copy_of_pubitem(App::get_channel(), $r[0]['mid']) ];
+ }
+ }
+
+ if(!$r)
killme();
-
+
+ // reset $message_id to the fetched copy of message if applicable
+ $message_id = $r[0]['id'];
+
$item_starred = (intval($r[0]['item_starred']) ? 0 : 1);
-
+
$r = q("UPDATE item SET item_starred = %d WHERE uid = %d and id = %d",
intval($item_starred),
intval(local_channel()),
@@ -38,8 +53,8 @@ class Starred extends \Zotlabs\Web\Controller {
if($r) {
xchan_query($r);
$sync_item = fetch_post_tags($r);
- Libsync::build_sync_packet(local_channel(),[
- 'item' => [
+ Libsync::build_sync_packet(local_channel(),[
+ 'item' => [
encode_item($sync_item[0],true)
]
]);
@@ -49,5 +64,5 @@ class Starred extends \Zotlabs\Web\Controller {
echo json_encode(array('result' => $item_starred));
killme();
}
-
+
}