Explorar o código

Update ApiV1Controller, use admin filter service

Daniel Supernault hai 1 ano
pai
achega
94503a1cf9
Modificáronse 1 ficheiros con 17 adicións e 1 borrados
  1. 17 1
      app/Http/Controllers/Api/ApiV1Controller.php

+ 17 - 1
app/Http/Controllers/Api/ApiV1Controller.php

@@ -37,6 +37,7 @@ use App\Models\Conversation;
 use App\Notification;
 use App\Profile;
 use App\Services\AccountService;
+use App\Services\AdminShadowFilterService;
 use App\Services\BookmarkService;
 use App\Services\BouncerService;
 use App\Services\CollectionService;
@@ -2648,7 +2649,7 @@ class ApiV1Controller extends Controller
         $domainBlocks = UserFilterService::domainBlocks($user->profile_id);
         $hideNsfw = config('instance.hide_nsfw_on_public_feeds');
         $amin = SnowflakeService::byDate(now()->subDays(config('federation.network_timeline_days_falloff')));
-
+        $asf = AdminShadowFilterService::getHideFromPublicFeedsList();
         if ($local && $remote) {
             $feed = Status::select(
                 'id',
@@ -2824,6 +2825,21 @@ class ApiV1Controller extends Controller
 
                 return ! in_array($domain, $domainBlocks);
             })
+            ->filter(function ($s) use ($asf, $user) {
+                if (! $asf || count($asf) === 0) {
+                    return true;
+                }
+
+                if (in_array($s['account']['id'], $asf)) {
+                    if ($user->profile_id == $s['account']['id']) {
+                        return true;
+                    }
+
+                    return false;
+                }
+
+                return true;
+            })
             ->take($limit)
             ->values();