瀏覽代碼

Update PublicApiController, fix scope bug

Daniel Supernault 5 年之前
父節點
當前提交
487de31788
共有 1 個文件被更改,包括 7 次插入2 次删除
  1. 7 2
      app/Http/Controllers/PublicApiController.php

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

@@ -115,19 +115,22 @@ class PublicApiController extends Controller
         $this->scopeCheck($profile, $status);
         $this->scopeCheck($profile, $status);
 
 
         if(Auth::check()) {
         if(Auth::check()) {
-            $pid = Auth::user()->profile->id;
-            $filtered = UserFilter::whereUserId($pid)
+            $p = Auth::user()->profile;
+            $filtered = UserFilter::whereUserId($p->id)
             ->whereFilterableType('App\Profile')
             ->whereFilterableType('App\Profile')
             ->whereIn('filter_type', ['mute', 'block'])
             ->whereIn('filter_type', ['mute', 'block'])
             ->pluck('filterable_id')->toArray();
             ->pluck('filterable_id')->toArray();
+            $scope = $p->id == $status->profile_id ? ['public', 'private'] : ['public'];
         } else {
         } else {
             $filtered = [];
             $filtered = [];
+            $scope = ['public'];
         }
         }
 
 
         if($request->filled('min_id') || $request->filled('max_id')) {
         if($request->filled('min_id') || $request->filled('max_id')) {
             if($request->filled('min_id')) {
             if($request->filled('min_id')) {
                 $replies = $status->comments()
                 $replies = $status->comments()
                 ->whereNull('reblog_of_id')
                 ->whereNull('reblog_of_id')
+                ->whereIn('scope', $scope)
                 ->whereNotIn('profile_id', $filtered)
                 ->whereNotIn('profile_id', $filtered)
                 ->select('id', 'caption', 'is_nsfw', 'rendered', 'profile_id', 'in_reply_to_id', 'type', 'reply_count', 'created_at')
                 ->select('id', 'caption', 'is_nsfw', 'rendered', 'profile_id', 'in_reply_to_id', 'type', 'reply_count', 'created_at')
                 ->where('id', '>=', $request->min_id)
                 ->where('id', '>=', $request->min_id)
@@ -137,6 +140,7 @@ class PublicApiController extends Controller
             if($request->filled('max_id')) {
             if($request->filled('max_id')) {
                 $replies = $status->comments()
                 $replies = $status->comments()
                 ->whereNull('reblog_of_id')
                 ->whereNull('reblog_of_id')
+                ->whereIn('scope', $scope)
                 ->whereNotIn('profile_id', $filtered)
                 ->whereNotIn('profile_id', $filtered)
                 ->select('id', 'caption', 'is_nsfw', 'rendered', 'profile_id', 'in_reply_to_id', 'type', 'reply_count', 'created_at')
                 ->select('id', 'caption', 'is_nsfw', 'rendered', 'profile_id', 'in_reply_to_id', 'type', 'reply_count', 'created_at')
                 ->where('id', '<=', $request->max_id)
                 ->where('id', '<=', $request->max_id)
@@ -146,6 +150,7 @@ class PublicApiController extends Controller
         } else {
         } else {
             $replies = $status->comments()
             $replies = $status->comments()
             ->whereNull('reblog_of_id')
             ->whereNull('reblog_of_id')
+            ->whereIn('scope', $scope)
             ->whereNotIn('profile_id', $filtered)
             ->whereNotIn('profile_id', $filtered)
             ->select('id', 'caption', 'is_nsfw', 'rendered', 'profile_id', 'in_reply_to_id', 'type', 'reply_count', 'created_at')
             ->select('id', 'caption', 'is_nsfw', 'rendered', 'profile_id', 'in_reply_to_id', 'type', 'reply_count', 'created_at')
             ->orderBy('id', 'desc')
             ->orderBy('id', 'desc')