From e590db3f326e006a40a0ba9987046a754959cc9a Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sun, 31 Mar 2019 15:07:31 -0600 Subject: [PATCH 1/9] Update StatusTransformer --- app/Transformer/Api/StatusTransformer.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/Transformer/Api/StatusTransformer.php b/app/Transformer/Api/StatusTransformer.php index d37f76105..e99768155 100644 --- a/app/Transformer/Api/StatusTransformer.php +++ b/app/Transformer/Api/StatusTransformer.php @@ -43,6 +43,8 @@ class StatusTransformer extends Fractal\TransformerAbstract 'pinned' => null, 'pf_type' => $status->type ?? $status->setType(), + 'reply_count' => $status->reply_count, + 'comments_disabled' => $status->comments_disabled ? true : false ]; } From d6ebce4780318440e714a289a112e3d3e4466014 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sun, 31 Mar 2019 20:27:22 -0600 Subject: [PATCH 2/9] Update StatusController --- app/Http/Controllers/StatusController.php | 27 +++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/app/Http/Controllers/StatusController.php b/app/Http/Controllers/StatusController.php index a77d6affc..9c5a34df8 100644 --- a/app/Http/Controllers/StatusController.php +++ b/app/Http/Controllers/StatusController.php @@ -12,8 +12,7 @@ use App\Status; use App\Transformer\ActivityPub\StatusTransformer; use App\Transformer\ActivityPub\Verb\Note; use App\User; -use Auth; -use Cache; +use Auth, Cache; use Illuminate\Http\Request; use League\Fractal; use App\Util\Media\Filter; @@ -22,6 +21,7 @@ class StatusController extends Controller { public function show(Request $request, $username, int $id) { + // $id = strlen($id) < 17 ? array_first(\Hashids::decode($id)) : $id; $user = Profile::whereNull('domain')->whereUsername($username)->firstOrFail(); if($user->status != null) { @@ -363,4 +363,27 @@ class StatusController extends Controller return 'photo:video:album'; } } + + public function toggleVisibility(Request $request) { + $this->authCheck(); + $this->validate($request, [ + 'item' => 'required|string|min:1|max:20', + 'disableComments' => 'required|boolean' + ]); + + $user = Auth::user(); + $id = $request->input('item'); + $state = $request->input('disableComments'); + + $status = Status::findOrFail($id); + + if($status->profile_id != $user->profile->id && $user->is_admin == false) { + abort(403); + } + + $status->comments_disabled = $status->comments_disabled == true ? false : true; + $status->save(); + + return response()->json([200]); + } } From 718d9a04522dcb2e74d2a81c6398228bc3f9d10a Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sun, 31 Mar 2019 20:39:15 -0600 Subject: [PATCH 3/9] Update CommentPipeline --- app/Jobs/CommentPipeline/CommentPipeline.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Jobs/CommentPipeline/CommentPipeline.php b/app/Jobs/CommentPipeline/CommentPipeline.php index bafe9bafd..4876138ce 100644 --- a/app/Jobs/CommentPipeline/CommentPipeline.php +++ b/app/Jobs/CommentPipeline/CommentPipeline.php @@ -51,7 +51,7 @@ class CommentPipeline implements ShouldQueue $target = $status->profile; $actor = $comment->profile; - if ($actor->id === $target->id) { + if ($actor->id === $target->id || $status->comments_disabled == true) { return true; } From dbaf903d687cd2307f284800f956b00e61d674fe Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sun, 31 Mar 2019 21:30:16 -0600 Subject: [PATCH 4/9] Update PublicApiController --- app/Http/Controllers/PublicApiController.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/app/Http/Controllers/PublicApiController.php b/app/Http/Controllers/PublicApiController.php index b97c8508d..2d6e4a770 100644 --- a/app/Http/Controllers/PublicApiController.php +++ b/app/Http/Controllers/PublicApiController.php @@ -110,7 +110,7 @@ class PublicApiController extends Controller ]); $limit = $request->limit ?? 10; $profile = Profile::whereUsername($username)->whereNull('status')->firstOrFail(); - $status = Status::whereProfileId($profile->id)->findOrFail($postId); + $status = Status::whereProfileId($profile->id)->whereCommentsDisabled(false)->findOrFail($postId); $this->scopeCheck($profile, $status); if($request->filled('min_id') || $request->filled('max_id')) { if($request->filled('min_id')) { @@ -578,9 +578,9 @@ class PublicApiController extends Controller $following = Follower::whereProfileId($pid)->pluck('following_id'); return $following->push($pid)->toArray(); }); - $visibility = true == in_array($profile->id, $following) ? ['public', 'unlisted', 'private'] : ['public']; + $visibility = true == in_array($profile->id, $following) ? ['public', 'unlisted', 'private'] : ['public', 'unlisted']; } else { - $visibility = ['public']; + $visibility = ['public', 'unlisted']; } } @@ -606,8 +606,8 @@ class PublicApiController extends Controller ->whereLocal(true) ->whereNull('uri') ->where('id', $dir, $id) - ->whereIn('visibility',$visibility) - ->orderBy('created_at', 'desc') + ->whereIn('visibility', $visibility) + ->latest() ->limit($limit) ->get(); From 2e0da45537e9b2e09775c9eb0d3d1661db740209 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sun, 31 Mar 2019 22:50:55 -0600 Subject: [PATCH 5/9] Update photo presenters, fix rounded corner bug --- .../assets/js/components/presenter/PhotoAlbumPresenter.vue | 7 +++++++ .../assets/js/components/presenter/PhotoPresenter.vue | 7 +++++++ 2 files changed, 14 insertions(+) diff --git a/resources/assets/js/components/presenter/PhotoAlbumPresenter.vue b/resources/assets/js/components/presenter/PhotoAlbumPresenter.vue index eac4e5b99..3423ba25c 100644 --- a/resources/assets/js/components/presenter/PhotoAlbumPresenter.vue +++ b/resources/assets/js/components/presenter/PhotoAlbumPresenter.vue @@ -43,6 +43,13 @@ + + \ No newline at end of file From 52863d81e62db725337edea54e56460e2b565117 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sun, 31 Mar 2019 23:29:54 -0600 Subject: [PATCH 8/9] Update PostMenu component --- resources/assets/js/components/PostMenu.vue | 46 ++++++++++----------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/resources/assets/js/components/PostMenu.vue b/resources/assets/js/components/PostMenu.vue index 3405f403a..dc5ab0933 100644 --- a/resources/assets/js/components/PostMenu.vue +++ b/resources/assets/js/components/PostMenu.vue @@ -5,38 +5,38 @@