Explorar o código

Merge pull request #1844 from pixelfed/staging

Staging
daniel %!s(int64=5) %!d(string=hai) anos
pai
achega
db4e8e3668

+ 3 - 0
app/Http/Controllers/CommentController.php

@@ -61,6 +61,7 @@ class CommentController extends Controller
         }
 
         $reply = DB::transaction(function() use($comment, $status, $profile) {
+            $scope = $profile->is_private == true ? 'private' : 'public';
             $autolink = Autolink::create()->autolink($comment);
             $reply = new Status();
             $reply->profile_id = $profile->id;
@@ -68,6 +69,8 @@ class CommentController extends Controller
             $reply->rendered = $autolink;
             $reply->in_reply_to_id = $status->id;
             $reply->in_reply_to_profile_id = $status->profile_id;
+            $reply->scope = $scope;
+            $reply->visibility = $scope;
             $reply->save();
 
             $status->reply_count++;

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

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