Parcourir la source

Update PublicApiController, fix bug that does not show private posts in home timeline

Daniel Supernault il y a 6 ans
Parent
commit
f86fc83cbd
2 fichiers modifiés avec 12 ajouts et 0 suppressions
  1. 6 0
      app/Http/Controllers/PublicApiController.php
  2. 6 0
      config/instance.php

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

@@ -211,6 +211,10 @@ class PublicApiController extends Controller
           'limit'       => 'nullable|integer|max:20'
         ]);
 
+        if(config('instance.timeline.local.is_public') == false && !Auth::check()) {
+            abort(403, 'Authentication required.');
+        }
+
         $page = $request->input('page');
         $min = $request->input('min_id');
         $max = $request->input('max_id');
@@ -331,6 +335,8 @@ class PublicApiController extends Controller
                 ->orWhere('status', '!=', null)
                 ->pluck('id');
         });
+        
+        $private = $private->diff($following)->flatten();
 
         $filters = UserFilter::whereUserId($pid)
                   ->whereFilterableType('App\Profile')

+ 6 - 0
config/instance.php

@@ -11,5 +11,11 @@ return [
 	'announcement' => [
 		'enabled' => env('INSTANCE_ANNOUNCEMENT_ENABLED', true),
 		'message' => env('INSTANCE_ANNOUNCEMENT_MESSAGE', 'Example announcement message.<br><span class="font-weight-normal">Something else here</span>')
+	],
+
+	'timeline' => [
+		'local' => [
+			'is_public' => env('INSTANCE_PUBLIC_LOCAL_TIMELINE', false)
+		]
 	]
 ];