Explorar o código

Update ApiV1Controller, fix private status replies returning 404

Daniel Supernault %!s(int64=3) %!d(string=hai) anos
pai
achega
73226360fc
Modificáronse 1 ficheiros con 8 adicións e 2 borrados
  1. 8 2
      app/Http/Controllers/Api/ApiV1Controller.php

+ 8 - 2
app/Http/Controllers/Api/ApiV1Controller.php

@@ -2514,9 +2514,15 @@ class ApiV1Controller extends Controller
 
 
 		$limit = $request->input('limit', 3);
 		$limit = $request->input('limit', 3);
 		$pid = $request->user()->profile_id;
 		$pid = $request->user()->profile_id;
-		$status = StatusService::getMastodon($id);
+		$status = StatusService::getMastodon($id, false);
 
 
-		abort_if(!$status || !in_array($status['visibility'], ['public', 'unlisted']), 404);
+		abort_if(!$status, 404);
+
+		if($status['visibility'] == 'private') {
+			if($pid != $status['account']['id']) {
+				abort_unless(FollowerService::follows($pid, $status['account']['id']), 404);
+			}
+		}
 
 
 		$sortBy = $request->input('sort', 'all');
 		$sortBy = $request->input('sort', 'all');