mirror of
https://github.com/pixelfed/pixelfed.git
synced 2024-11-25 15:55:22 +00:00
Update CollectionController, fix broken unauthenticated access. Fixes #3242
This commit is contained in:
parent
46ebe46ff7
commit
bd249f0c39
1 changed files with 12 additions and 6 deletions
|
@ -17,6 +17,7 @@ use App\Transformer\Api\{
|
||||||
};
|
};
|
||||||
use League\Fractal\Serializer\ArraySerializer;
|
use League\Fractal\Serializer\ArraySerializer;
|
||||||
use League\Fractal\Pagination\IlluminatePaginatorAdapter;
|
use League\Fractal\Pagination\IlluminatePaginatorAdapter;
|
||||||
|
use App\Services\StatusService;
|
||||||
|
|
||||||
class CollectionController extends Controller
|
class CollectionController extends Controller
|
||||||
{
|
{
|
||||||
|
@ -166,12 +167,16 @@ class CollectionController extends Controller
|
||||||
if($collection->visibility !== 'public') {
|
if($collection->visibility !== 'public') {
|
||||||
abort_if(!Auth::check() || Auth::user()->profile_id != $collection->profile_id, 404);
|
abort_if(!Auth::check() || Auth::user()->profile_id != $collection->profile_id, 404);
|
||||||
}
|
}
|
||||||
$posts = $collection->posts()->orderBy('order', 'asc')->get();
|
|
||||||
|
|
||||||
$fractal = new Fractal\Manager();
|
$res = CollectionItem::whereCollectionId($id)
|
||||||
$fractal->setSerializer(new ArraySerializer());
|
->pluck('object_id')
|
||||||
$resource = new Fractal\Resource\Collection($posts, new StatusTransformer());
|
->map(function($id) {
|
||||||
$res = $fractal->createData($resource)->toArray();
|
return StatusService::get($id);
|
||||||
|
})
|
||||||
|
->filter(function($post) {
|
||||||
|
return $post && isset($post['account']);
|
||||||
|
})
|
||||||
|
->values();
|
||||||
|
|
||||||
return response()->json($res);
|
return response()->json($res);
|
||||||
}
|
}
|
||||||
|
@ -197,11 +202,12 @@ class CollectionController extends Controller
|
||||||
->paginate(9)
|
->paginate(9)
|
||||||
->map(function($collection) {
|
->map(function($collection) {
|
||||||
return [
|
return [
|
||||||
'id' => $collection->id,
|
'id' => (string) $collection->id,
|
||||||
'title' => $collection->title,
|
'title' => $collection->title,
|
||||||
'description' => $collection->description,
|
'description' => $collection->description,
|
||||||
'thumb' => $collection->posts()->first()->thumb(),
|
'thumb' => $collection->posts()->first()->thumb(),
|
||||||
'url' => $collection->url(),
|
'url' => $collection->url(),
|
||||||
|
'post_count' => $collection->posts()->count(),
|
||||||
'published_at' => $collection->published_at
|
'published_at' => $collection->published_at
|
||||||
];
|
];
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in a new issue