Loading app/Controllers/PostController.php +6 −0 Original line number Diff line number Diff line Loading @@ -66,6 +66,11 @@ class PostController extends FediversePostController $this->post = $post; // show 404 if post is private if ($this->post->is_private && ! can_user_interact()) { throw PageNotFoundException::forPageNotFound(); } unset($params[0]); unset($params[1]); Loading Loading @@ -183,6 +188,7 @@ class PostController extends FediversePostController 'actor_id' => interact_as_actor_id(), 'in_reply_to_id' => $this->post->id, 'message' => $validData['message'], 'is_private' => $this->post->is_private, 'published_at' => Time::now(), 'created_by' => user_id(), ]); Loading app/Entities/Post.php +1 −0 Original line number Diff line number Diff line Loading @@ -34,6 +34,7 @@ class Post extends FediversePost 'episode_id' => '?integer', 'message' => 'string', 'message_html' => 'string', 'is_private' => 'boolean', 'favourites_count' => 'integer', 'reblogs_count' => 'integer', 'replies_count' => 'integer', Loading app/Language/en/Post.php +3 −0 Original line number Diff line number Diff line Loading @@ -37,4 +37,7 @@ return [ 'block_actor' => 'Block user @{actorUsername}', 'block_domain' => 'Block domain @{actorDomain}', 'delete' => 'Delete post', 'is_public' => 'Post is public', 'is_private' => 'Post is private', 'cannot_reblog' => 'This private post cannot be shared.', ]; app/Models/EpisodeCommentModel.php +10 −4 Original line number Diff line number Diff line Loading @@ -201,7 +201,7 @@ class EpisodeCommentModel extends UuidModel { // TODO: merge with replies from posts linked to episode linked $episodeCommentsBuilder = $this->builder(); $episodeComments = $episodeCommentsBuilder->select('*, 0 as is_from_post') $episodeComments = $episodeCommentsBuilder->select('*, 0 as is_private, 0 as is_from_post') ->where([ 'episode_id' => $episodeId, 'in_reply_to_id' => null, Loading @@ -211,7 +211,7 @@ class EpisodeCommentModel extends UuidModel $postModel = new PostModel(); $episodePostsRepliesBuilder = $postModel->builder(); $episodePostsReplies = $episodePostsRepliesBuilder->select( 'id, uri, episode_id, actor_id, in_reply_to_id, message, message_html, favourites_count as likes_count, replies_count, published_at as created_at, created_by, 1 as is_from_post' 'id, uri, episode_id, actor_id, in_reply_to_id, message, message_html, is_private, favourites_count as likes_count, replies_count, published_at as created_at, created_by, 1 as is_from_post' ) ->whereIn('in_reply_to_id', static function (BaseBuilder $builder) use (&$episodeId): BaseBuilder { return $builder->select('id') Loading @@ -221,8 +221,14 @@ class EpisodeCommentModel extends UuidModel 'in_reply_to_id' => null, ]); }) ->where('`created_at` <= UTC_TIMESTAMP()', null, false) ->getCompiledSelect(); ->where('`created_at` <= UTC_TIMESTAMP()', null, false); // do not get private replies if public if (! can_user_interact()) { $episodePostsRepliesBuilder->where('is_private', false); } $episodePostsReplies = $episodePostsRepliesBuilder->getCompiledSelect(); /** @var BaseResult $allEpisodeComments */ $allEpisodeComments = $this->db->query( Loading app/Models/PostModel.php +1 −0 Original line number Diff line number Diff line Loading @@ -32,6 +32,7 @@ class PostModel extends FediversePostModel 'episode_id', 'message', 'message_html', 'is_private', 'favourites_count', 'reblogs_count', 'replies_count', Loading Loading
app/Controllers/PostController.php +6 −0 Original line number Diff line number Diff line Loading @@ -66,6 +66,11 @@ class PostController extends FediversePostController $this->post = $post; // show 404 if post is private if ($this->post->is_private && ! can_user_interact()) { throw PageNotFoundException::forPageNotFound(); } unset($params[0]); unset($params[1]); Loading Loading @@ -183,6 +188,7 @@ class PostController extends FediversePostController 'actor_id' => interact_as_actor_id(), 'in_reply_to_id' => $this->post->id, 'message' => $validData['message'], 'is_private' => $this->post->is_private, 'published_at' => Time::now(), 'created_by' => user_id(), ]); Loading
app/Entities/Post.php +1 −0 Original line number Diff line number Diff line Loading @@ -34,6 +34,7 @@ class Post extends FediversePost 'episode_id' => '?integer', 'message' => 'string', 'message_html' => 'string', 'is_private' => 'boolean', 'favourites_count' => 'integer', 'reblogs_count' => 'integer', 'replies_count' => 'integer', Loading
app/Language/en/Post.php +3 −0 Original line number Diff line number Diff line Loading @@ -37,4 +37,7 @@ return [ 'block_actor' => 'Block user @{actorUsername}', 'block_domain' => 'Block domain @{actorDomain}', 'delete' => 'Delete post', 'is_public' => 'Post is public', 'is_private' => 'Post is private', 'cannot_reblog' => 'This private post cannot be shared.', ];
app/Models/EpisodeCommentModel.php +10 −4 Original line number Diff line number Diff line Loading @@ -201,7 +201,7 @@ class EpisodeCommentModel extends UuidModel { // TODO: merge with replies from posts linked to episode linked $episodeCommentsBuilder = $this->builder(); $episodeComments = $episodeCommentsBuilder->select('*, 0 as is_from_post') $episodeComments = $episodeCommentsBuilder->select('*, 0 as is_private, 0 as is_from_post') ->where([ 'episode_id' => $episodeId, 'in_reply_to_id' => null, Loading @@ -211,7 +211,7 @@ class EpisodeCommentModel extends UuidModel $postModel = new PostModel(); $episodePostsRepliesBuilder = $postModel->builder(); $episodePostsReplies = $episodePostsRepliesBuilder->select( 'id, uri, episode_id, actor_id, in_reply_to_id, message, message_html, favourites_count as likes_count, replies_count, published_at as created_at, created_by, 1 as is_from_post' 'id, uri, episode_id, actor_id, in_reply_to_id, message, message_html, is_private, favourites_count as likes_count, replies_count, published_at as created_at, created_by, 1 as is_from_post' ) ->whereIn('in_reply_to_id', static function (BaseBuilder $builder) use (&$episodeId): BaseBuilder { return $builder->select('id') Loading @@ -221,8 +221,14 @@ class EpisodeCommentModel extends UuidModel 'in_reply_to_id' => null, ]); }) ->where('`created_at` <= UTC_TIMESTAMP()', null, false) ->getCompiledSelect(); ->where('`created_at` <= UTC_TIMESTAMP()', null, false); // do not get private replies if public if (! can_user_interact()) { $episodePostsRepliesBuilder->where('is_private', false); } $episodePostsReplies = $episodePostsRepliesBuilder->getCompiledSelect(); /** @var BaseResult $allEpisodeComments */ $allEpisodeComments = $this->db->query( Loading
app/Models/PostModel.php +1 −0 Original line number Diff line number Diff line Loading @@ -32,6 +32,7 @@ class PostModel extends FediversePostModel 'episode_id', 'message', 'message_html', 'is_private', 'favourites_count', 'reblogs_count', 'replies_count', Loading