diff options
Diffstat (limited to 'include/ConversationObject.php')
-rw-r--r-- | include/ConversationObject.php | 27 |
1 files changed, 17 insertions, 10 deletions
diff --git a/include/ConversationObject.php b/include/ConversationObject.php index 30026e908..bb144d893 100644 --- a/include/ConversationObject.php +++ b/include/ConversationObject.php @@ -7,6 +7,7 @@ require_once('boot.php'); require_once('include/BaseObject.php'); require_once('include/ItemObject.php'); require_once('include/text.php'); +require_once('include/items.php'); /** * A list of threads @@ -138,22 +139,28 @@ class Conversation extends BaseObject { return false; } - if(local_user() && $item->get_data_value('uid') == local_user()) - $this->commentable = true; +// if(local_user() && $item->get_data_value('uid') == local_user()) +// $this->commentable = true; - if($this->writable) - $this->commentable = true; +// if($this->writable) +// $this->commentable = true; + + $item->set_commentable(false); + $ob_hash = (($this->observer) ? $this->observer['xchan_hash'] : ''); + + if(($item->get_data_value('author_xchan') === $ob_hash) || ($item->get_data_value('owner_xchan') === $ob_hash)) + $item->set_commentable(true); if($item->get_data_value('item_flags') & ITEM_NOCOMMENT) { - $this->commentable = false; + $item->set_commentable(false); } - elseif(($this->observer) && (! $this->writable)) { - $this->commentable = can_comment_on_post($this->observer['xchan_hash'],$item->data); + elseif(($this->observer) && (! $item->is_commentable())) { + if((array_key_exists('owner',$item->data)) && ($item->data['owner']['abook_flags'] & ABOOK_FLAG_SELF)) + $item->set_commentable(perm_is_allowed($this->profile_owner,$this->observer['xchan_hash'],'post_comments')); + else + $item->set_commentable(can_comment_on_post($this->observer['xchan_hash'],$item->data)); } - - - $item->set_conversation($this); $this->threads[] = $item; return end($this->threads); |