瀏覽代碼

Merge pull request #2138 from pixelfed/staging

Updated PublicApiControllers, fix block/mutes filtering
daniel 5 年之前
父節點
當前提交
fe3c85371a
共有 2 個文件被更改,包括 8 次插入0 次删除
  1. 1 0
      CHANGELOG.md
  2. 7 0
      app/Http/Controllers/PublicApiController.php

+ 1 - 0
CHANGELOG.md

@@ -11,6 +11,7 @@
 - Updated 2FA Checkpoint, add username + logout button and numeric inputmode ([26affb11](https://github.com/pixelfed/pixelfed/commit/26affb11))
 - Updated RemoteProfile, fix missing content warnings ([e487527a](https://github.com/pixelfed/pixelfed/commit/e487527a))
 - Updated RemotePost component, fix missing like button on comments ([7ef90565](https://github.com/pixelfed/pixelfed/commit/7ef90565))
+- Updated PublicApiControllers, fix block/mutes filtering on public timeline ([08383dd4](https://github.com/pixelfed/pixelfed/commit/08383dd4))
 
 
 ## [v0.10.9 (2020-04-17)](https://github.com/pixelfed/pixelfed/compare/v0.10.8...v0.10.9)

+ 7 - 0
app/Http/Controllers/PublicApiController.php

@@ -239,6 +239,11 @@ class PublicApiController extends Controller
         $max = $request->input('max_id');
         $limit = $request->input('limit') ?? 3;
 
+        $filtered = UserFilter::whereUserId(Auth::user()->profile_id)
+                  ->whereFilterableType('App\Profile')
+                  ->whereIn('filter_type', ['mute', 'block'])
+                  ->pluck('filterable_id')->toArray();
+
         if($min || $max) {
             $dir = $min ? '>' : '<';
             $id = $min ?? $max;
@@ -263,6 +268,7 @@ class PublicApiController extends Controller
                         'updated_at'
                       )->where('id', $dir, $id)
                       ->whereIn('type', ['photo', 'photo:album', 'video', 'video:album', 'photo:video:album'])
+                      ->whereNotIn('profile_id', $filtered)
                       ->whereLocal(true)
                       ->whereVisibility('public')
                       ->orderBy('created_at', 'desc')
@@ -289,6 +295,7 @@ class PublicApiController extends Controller
                         'reblogs_count',
                         'updated_at'
                       )->whereIn('type', ['photo', 'photo:album', 'video', 'video:album', 'photo:video:album'])
+                      ->whereNotIn('profile_id', $filtered)
                       ->with('profile', 'hashtags', 'mentions')
                       ->whereLocal(true)
                       ->whereVisibility('public')