Update PublicApiController, fix scope bug

This commit is contained in:
Daniel Supernault 2019-11-27 20:13:07 -07:00
parent 45ecad2a07
commit 487de31788
No known key found for this signature in database
GPG key ID: 0DEF1C662C9033F7

View file

@ -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; $p = Auth::user()->profile;
$filtered = UserFilter::whereUserId($pid) $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')